Register Guidelines E-Books Today's Posts Search

Go Back   MobileRead Forums > E-Book Readers > Amazon Kindle > Kindle Developer's Corner

Notices

Reply
 
Thread Tools Search this Thread
Old 06-22-2017, 12:04 PM   #91
knc1
Going Viral
knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.
 
knc1's Avatar
 
Posts: 17,212
Karma: 18210809
Join Date: Feb 2012
Location: Central Texas
Device: No K1, PW2, KV, KOA
Quote:
Originally Posted by phoenix512 View Post
I tried to use the trick with Python 3.6, but it produces errors. Do you think your version work with the latest version of Python?
Quote:
Originally Posted by phoenix512 View Post
I used python 2.7 and it works. however, the kindle doesn't get refreshed automatically! it's an still image. i have to refresh the page manually and takes time.
That is how this tool works!?
Codehimn only made a single post in this forum (and in this site).
That was over 2 years ago.

Do you really expect an answer from him?
knc1 is offline   Reply With Quote
Old 06-23-2017, 01:55 AM   #92
codehimn
Junior Member
codehimn is on a distinguished road
 
Posts: 4
Karma: 50
Join Date: Apr 2015
Device: pw2
Quote:
Originally Posted by phoenix512 View Post
I tried to use the trick with Python 3.6, but it produces errors. Do you think your version work with the latest version of Python?

do you have installed wxPython? (https://pypi.python.org/pypi/wxPython)
If you do not say what is the error nobody will be able to help you ...
screenshot/log of the error?
codehimn is offline   Reply With Quote
Old 06-23-2017, 02:01 AM   #93
codehimn
Junior Member
codehimn is on a distinguished road
 
Posts: 4
Karma: 50
Join Date: Apr 2015
Device: pw2
Quote:
Originally Posted by phoenix512 View Post
I used python 2.7 and it works. however, the kindle doesn't get refreshed automatically! it's an still image. i have to refresh the page manually and takes time.
That is how this tool works!?
not , it should be automatic, but only tested on python 3.3~3.6

I advise you to modernize (https://pythonclock.org/ , https://twitter.com/gvanrossum/statu...842496?lang=es)

but you can easy add one meta tag to auto refresh
<meta http-equiv="refresh" content="2"> to refresh every 2 seconds
codehimn is offline   Reply With Quote
Old 06-23-2017, 05:03 AM   #94
phoenix512
Enthusiast
phoenix512 began at the beginning.
 
phoenix512's Avatar
 
Posts: 45
Karma: 10
Join Date: Feb 2014
Device: kindle PW2
Quote:
Originally Posted by codehimn View Post
do you have installed wxPython? (https://pypi.python.org/pypi/wxPython)
If you do not say what is the error nobody will be able to help you ...
screenshot/log of the error?
OK, I installed Python 3.6. when I go to the link for downloading wxPython, there is wheel packages which I think are for Linux. I find no exe file to run in windows there!
Anyway, when I use cmd to install wxPython, it say the package is already there ("Requirement already satisfied:").
After putting parentheses after print commands in the py file provided "webserver_v3", I can run it but it produces an arror
" from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
ModuleNotFoundError: No module named 'BaseHTTPServer'"
what is the problem?
phoenix512 is offline   Reply With Quote
Old 06-23-2017, 04:00 PM   #95
knc1
Going Viral
knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.
 
knc1's Avatar
 
Posts: 17,212
Karma: 18210809
Join Date: Feb 2012
Location: Central Texas
Device: No K1, PW2, KV, KOA
@codehimn: You are now up to an average of one post per year.

I do admit that such a quick response after such a long silence took me by surprise.
knc1 is offline   Reply With Quote
Old 06-30-2017, 08:14 AM   #96
codehimn
Junior Member
codehimn is on a distinguished road
 
Posts: 4
Karma: 50
Join Date: Apr 2015
Device: pw2
Quote:
Originally Posted by phoenix512 View Post
OK, I installed Python 3.6. when I go to the link for downloading wxPython, there is wheel packages which I think are for Linux. I find no exe file to run in windows there!
Anyway, when I use cmd to install wxPython, it say the package is already there ("Requirement already satisfied:").
After putting parentheses after print commands in the py file provided "webserver_v3", I can run it but it produces an arror
" from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
ModuleNotFoundError: No module named 'BaseHTTPServer'"
what is the problem?

You should try with "webserver_v6"... and let me know if all is ok
how to install the whl file:
python -m pip install path_folder***\wxPython-******.whl
codehimn is offline   Reply With Quote
Old 10-30-2017, 12:33 AM   #97
Gigel
Member
Gigel began at the beginning.
 
Posts: 16
Karma: 10
Join Date: Oct 2017
Device: kindle 3
For me this program works partially.
The screen the screen of kindle stays frozen. has no refresh after opening Experimental and writing the IP that is given on MSDOS Prompt in Windows.

But I noticed that some sites accessed with Kindle may have a moving image, especially an ad.
Gigel is offline   Reply With Quote
Old 11-19-2019, 12:26 PM   #98
DarkTrick
Enthusiast
DarkTrick juggles running chainsaws for a bit of light exerciseDarkTrick juggles running chainsaws for a bit of light exerciseDarkTrick juggles running chainsaws for a bit of light exerciseDarkTrick juggles running chainsaws for a bit of light exerciseDarkTrick juggles running chainsaws for a bit of light exerciseDarkTrick juggles running chainsaws for a bit of light exerciseDarkTrick juggles running chainsaws for a bit of light exerciseDarkTrick juggles running chainsaws for a bit of light exerciseDarkTrick juggles running chainsaws for a bit of light exerciseDarkTrick juggles running chainsaws for a bit of light exerciseDarkTrick juggles running chainsaws for a bit of light exercise
 
Posts: 25
Karma: 38926
Join Date: Jun 2015
Device: Kindle Touch
updated version to gtk

Is anyone actually still interested in this stuff...?

I had troubles running the script. There seems to be a bug in wxPython, that will cause it to always save the same screenshot.

I "rewrote" it to use gtk instead. No wxPython needed

Attachment:
I don't see a way to attach my file, so I post the code of the python file below.

Note1:
I changed the code: The shown image will only update, if the picture is clicked (on the kindle)

Note2:
The code is "just get it work". So very ugly. I'm going to work on a much more sophisticated version within the next couple of month. Let me know if someone is interested .. might keep my motivation high.


SOURCE CODE:
#====================================
Spoiler:

#!/usr/bin/python
#eMonitor by Kranu
#modified by DarkTrick
#Version 2 (9-1-2011)

#Tested on Windows 7 x64, Python 2.7.2
#Tested on Ubuntu 19.04, Python 2.7.16
#For more information, see: http://goo.gl/rJoLp

#BEGIN SETUP

#HTTP Server
port=8080 #port of http server (http://127.0.0.1:8000/)

#capture region
#l,t=(1680,1050-800)
l,t=(10,120) #left and right offset from primary monitor
#w,h=(595,701) #width and height of capture region
w,h=(701,595) #width and height of capture region

# "ss" = screenshot
ssX = l
ssY = t
ssWidth = w
ssHeight = h

#fn ='shot.jpg' #file name of screenshot
fn ='shot.png' #file name of screenshot

#//END SETUP

import socket
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer


import gtk.gdk
import time

def gtkScreenshot():
w = gtk.gdk.get_default_root_window()
#ssWidth,ssHeight = w.get_size()
#print "The size of the window is %d x %d" % sz

pb = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB,False,8,ssWi dth,ssHeight)
pb = pb.get_from_drawable(w,w.get_colormap(),ssX,ssY,0, 0,ssWidth,ssHeight)

pb = pb.rotate_simple(90)

#pb = gtk.gdk.pixbuf_get_from_window(window, ssX, ssY, ssWidth, ssHeight)

ts = time.time()
filename = fn

if (pb != None):
pb.save(filename,"png")
#print "Screenshot saved to "+filename
else:
print("Unable to get the screenshot.")

class serv(BaseHTTPRequestHandler):

def deliverSite(self):
#print("deliverSite()")

self.send_header('Content-type','text/html')
self.end_headers()

reloadFunction = 'function() {'\
' document.getElementById("pic").src="'+fn+'?"+(new Date()).getTime();'\
'}'

website = """
<!doctype html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>eMonitor by Kranu</title>
</head>
<body id="bod" style="margin:0px;">
<img id="pic" src='shot.png' >
<script type="text/javascript">
document.getElementById("pic").onclick="""+reloadF unction+"""
</script>

</body>
</html>"""
with open("debug_website.html","w") as file:
file.write(website)

self.wfile.write(website)

def do_GET(self):
self.send_response(200)
if self.path.startswith('/'+fn): #check, if the request was about the image
print("deliverImage()")


self.send_header('Content-type','image/jpeg')
self.end_headers()

gtkScreenshot()

with open(fn,'rb') as f:
self.wfile.write(f.read())

else:
self.deliverSite()

try:
print( 'eMonitor by Kranu')

#Amazon's website is used here for its reliablity. Feel free to change it.
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("amazon.com",80))

print 'Starting.. ',
server=HTTPServer(('',port),serv)
print ('Press Ctrl+C to stop')
print ("")

print ('On your Kindle, visit http://'+s.getsockname()[0]+':'+str(port)+'/')

# take initial screenshot
gtkScreenshot()


server.serve_forever()
except KeyboardInterrupt:
print ('Stopping.. '),
server.socket.close()

#====================================

Last edited by DarkTrick; 11-21-2019 at 09:18 AM.
DarkTrick is offline   Reply With Quote
Old 11-21-2019, 09:16 AM   #99
DarkTrick
Enthusiast
DarkTrick juggles running chainsaws for a bit of light exerciseDarkTrick juggles running chainsaws for a bit of light exerciseDarkTrick juggles running chainsaws for a bit of light exerciseDarkTrick juggles running chainsaws for a bit of light exerciseDarkTrick juggles running chainsaws for a bit of light exerciseDarkTrick juggles running chainsaws for a bit of light exerciseDarkTrick juggles running chainsaws for a bit of light exerciseDarkTrick juggles running chainsaws for a bit of light exerciseDarkTrick juggles running chainsaws for a bit of light exerciseDarkTrick juggles running chainsaws for a bit of light exerciseDarkTrick juggles running chainsaws for a bit of light exercise
 
Posts: 25
Karma: 38926
Join Date: Jun 2015
Device: Kindle Touch
eMonitor, that can scroll

Hello,

I uploaded a video regarding the current state:
https://youtu.be/_DNOn-T9pHY

As you will see: you can now move around on your screen with the kindle.

The skript is attached.
The source code is here (in case there is a problem with the attachment):
Spoiler:
#!/usr/bin/python
#eMonitor by Kranu
#modified by DarkTrick
#Version 2 (9-1-2011)

#Tested on Windows 7 x64, Python 2.7.2, wxPython 2.8
#For more information, see: h://goo.gl/rJoLp

#BEGIN SETUP

#HTTP Server
port=8080 #port of http server (http://127.0.0.1:8000/)

#capture region
#l,t=(1680,1050-800)
l,t=(10,120) #left and right offset from primary monitor
#w,h=(595,701) #width and height of capture region
w,h=(701,595) #width and height of capture region

# "ss" = screenshot
ssX = l
ssY = t
ssWidth = w
ssHeight = h

#fn ='shot.jpg' #file name of screenshot
fn ='shot.png' #file name of screenshot

#//END SETUP

import socket
# run with python2
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer

#run with python3
#from http.server import BaseHTTPRequestHandler, HTTPServer

import gtk.gdk
import time

def convertGetVarToArray ( url ):
startPos = url.find("?") + 1

# stop, if no vars
if(startPos == 0):
return {}

vars_flat = url[startPos:]

# stop, if empty
if("" == vars_flat):
return {}
#else: # debug
# print("OK ( " + vars_flat + ")")

# split by "&"
vars_assigns = vars_flat.split("&")

associativeArray = {}
for assignment in vars_assigns:
key, value = "",""
if( "=" in assignment ):
key, value = assignment.split("=",1)
else:
key = assignment
associativeArray[key] = value

return associativeArray

def test_convertGetVarToArray():
convertGetVarToArray("/shot.png?a=1") == {"a": "1"}
convertGetVarToArray("/shot.png?a=1&b=2") == {"a": "1", "b": "2"}
convertGetVarToArray("/shot.png") == {}
convertGetVarToArray("/shot.png?") == {}
convertGetVarToArray("/shot.png?a=") == {"a": ""}
convertGetVarToArray("//shot.png?a") == {"a": ""}

# testing
#test_convertGetVarToArray()
#exit()

def gtkScreenshot (moveX = 0, moveY = 0):

global ssX,ssY

ssX += moveX * (ssWidth/2) # 80
ssY += moveY * (ssHeight/2) #40

print ("x: " + str(ssX) + " y: " + str(ssY))

w = gtk.gdk.get_default_root_window()
#ssWidth,ssHeight = w.get_size()
#print "The size of the window is %d x %d" % sz

pb = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB,False,8,ssWi dth,ssHeight)
pb = pb.get_from_drawable(w,w.get_colormap(),ssX,ssY,0, 0,ssWidth,ssHeight)

pb = pb.rotate_simple(90)

#pb = gtk.gdk.pixbuf_get_from_window(window, ssX, ssY, ssWidth, ssHeight)

ts = time.time()
filename = fn

if (pb != None):
pb.save(filename,"png")
#print "Screenshot saved to "+filename
else:
print("Unable to get the screenshot.")

class serv(BaseHTTPRequestHandler):

def deliverSite (self):
#print("deliverSite()")

self.send_header('Content-type','text/html')
self.end_headers()

# reloadFunction = 'function() {'\
# ' document.getElementById("pic").src="'+fn+'?"+(new Date()).getTime();'\
# '}'

# website = """
# <!doctype html>
# <html lang="en">
# <head>
# <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
# <title>eMonitor by Kranu</title>
# </head>
# <body id="bod" style="margin:0px;">
# <img id="pic" src='shot.png' >
# <script type="text/javascript">
# document.getElementById("pic").onclick="""+reloadF unction+"""
# </script>

# </body>
# </html>"""

website = """

<!doctype html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>eMonitor by Kranu</title>
<style>
div{
position:absolute;
background-color: #00000000;
}
</style>
<script type="text/javascript">
function renew(additionalParams) {
//alert('"""+fn+"""?' + additionalParams);
//we need the time to make the browser really renew
document.getElementById("pic").src='"""+fn+"""?' + (new Date()).getTime() + '&' +additionalParams;
}
function moveVisibleArea(x,y){
renew("movex=" + x + "&movey=" + y);
}
</script>
</head>
<body id="bod" style="margin:0px;">
<!-- up -->
<div onclick="javascript:moveVisibleArea(0,-1);" style="width:20%;height:80%;"></div>
<!-- down -->
<div onclick="javascript:moveVisibleArea(0, 1);" style="width:20%;height:80%;left:80%;"></div>
<!-- right -->
<div onclick="javascript:moveVisibleArea( 1,0);" style="width:100%;height:20%;top:0px;"></div>
<!-- left -->
<div onclick="javascript:moveVisibleArea(-1,0);" style="width:100%;height:20%;top:80%;"></div>

<img id="pic" src='"""+fn+"""' onclick='javascript:renew("")' />

</body>
</html>
"""
with open("debug_website.html","w") as file:
file.write(website)

self.wfile.write(website)

def updateImage (self):

#get all variables
vars = convertGetVarToArray(self.path)
moveX = 0
moveY = 0
if( "movex" in vars ):
moveX = int(vars["movex"])
if( "movey" in vars ):
moveY = int(vars["movey"])

print("deliverImage()")

self.send_header('Content-type','image/jpeg')
self.end_headers()

gtkScreenshot(moveX,moveY)

with open(fn,'rb') as f:
self.wfile.write(f.read())

def do_GET (self):
self.send_response(200)

#check, if the request was about the image
if self.path.startswith('/'+fn):
self.updateImage()
else:
self.deliverSite()

try:
print( 'eMonitor by Kranu')

#Amazon's website is used here for its reliablity. Feel free to change it.
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("amazon.com",80))

print ('Starting.. ')
server=HTTPServer(('',port),serv)
print ('Press Ctrl+C to stop')
print ("")

print ('On your Kindle, visit http://'+s.getsockname()[0]+':'+str(port)+'/')

# take initial screenshot
gtkScreenshot()


server.serve_forever()
except KeyboardInterrupt:
print ('Stopping.. '),
server.socket.close()
Attached Files
File Type: py webservergtk.py (6.4 KB, 187 views)

Last edited by DarkTrick; 11-21-2019 at 09:18 AM.
DarkTrick is offline   Reply With Quote
Old 02-04-2020, 01:31 PM   #100
hadi.kr
Junior Member
hadi.kr began at the beginning.
 
Posts: 2
Karma: 10
Join Date: Feb 2020
Device: kindel
https://screentask.me/
work but need some one edit the code to run for kindle very well
is some problem
you can test it
it is a software for any one not have knowledge of programing
i hope some one edit the code and make well it for kindle
hadi.kr is offline   Reply With Quote
Old 02-07-2020, 09:55 PM   #101
DarkTrick
Enthusiast
DarkTrick juggles running chainsaws for a bit of light exerciseDarkTrick juggles running chainsaws for a bit of light exerciseDarkTrick juggles running chainsaws for a bit of light exerciseDarkTrick juggles running chainsaws for a bit of light exerciseDarkTrick juggles running chainsaws for a bit of light exerciseDarkTrick juggles running chainsaws for a bit of light exerciseDarkTrick juggles running chainsaws for a bit of light exerciseDarkTrick juggles running chainsaws for a bit of light exerciseDarkTrick juggles running chainsaws for a bit of light exerciseDarkTrick juggles running chainsaws for a bit of light exerciseDarkTrick juggles running chainsaws for a bit of light exercise
 
Posts: 25
Karma: 38926
Join Date: Jun 2015
Device: Kindle Touch
@hadi.kr

sounds nice on their website. Unfortunately they don't have a video showing it in action. And spending 1 to 2 hours to try it myself is a hard favour to ask. Maybe the software is crap. Maybe not. If they create an overview of their software, I might look into it.

edit: And they work on C#. So systems without C# support can't use it.


Regards

Last edited by DarkTrick; 02-07-2020 at 10:16 PM.
DarkTrick is offline   Reply With Quote
Old 02-08-2020, 08:42 AM   #102
knc1
Going Viral
knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.
 
knc1's Avatar
 
Posts: 17,212
Karma: 18210809
Join Date: Feb 2012
Location: Central Texas
Device: No K1, PW2, KV, KOA
Quote:
Originally Posted by hadi.kr View Post
https://screentask.me/
work but need some one edit the code to run for kindle very well
is some problem
you can test it
it is a software for any one not have knowledge of programing
i hope some one edit the code and make well it for kindle
I looked over both the information presented on the web-site and the source code provided.
Ref: https://github.com/EslaMx7


Looks and reads as a young person just trying to re-invent the wheel (VnC) without a clue that VnC has been standardized and around for decades.


If you really want this sort of feature here, why don't you just give the VnC version(s) we have here as add-ins for the Kindle a try?


Also, Twobob has created Kindle add-ins for MS standard remote system sharing.
That project of his was because he did remote server administration for other people using his K5 Kindles as a remote system head.

Last edited by knc1; 02-08-2020 at 03:46 PM.
knc1 is offline   Reply With Quote
Old 02-08-2020, 11:51 AM   #103
j.p.s
Grand Sorcerer
j.p.s ought to be getting tired of karma fortunes by now.j.p.s ought to be getting tired of karma fortunes by now.j.p.s ought to be getting tired of karma fortunes by now.j.p.s ought to be getting tired of karma fortunes by now.j.p.s ought to be getting tired of karma fortunes by now.j.p.s ought to be getting tired of karma fortunes by now.j.p.s ought to be getting tired of karma fortunes by now.j.p.s ought to be getting tired of karma fortunes by now.j.p.s ought to be getting tired of karma fortunes by now.j.p.s ought to be getting tired of karma fortunes by now.j.p.s ought to be getting tired of karma fortunes by now.
 
Posts: 5,275
Karma: 98804578
Join Date: Apr 2011
Device: pb360
Obsolete post.

Last edited by j.p.s; 02-08-2020 at 04:54 PM. Reason: Remove no longer applicable content.
j.p.s is offline   Reply With Quote
Old 02-08-2020, 03:45 PM   #104
knc1
Going Viral
knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.
 
knc1's Avatar
 
Posts: 17,212
Karma: 18210809
Join Date: Feb 2012
Location: Central Texas
Device: No K1, PW2, KV, KOA
Quote:
Originally Posted by j.p.s View Post
I think you meant VNC
Thanks!
Pardon my brain-fart.
knc1 is offline   Reply With Quote
Old 02-08-2020, 04:56 PM   #105
j.p.s
Grand Sorcerer
j.p.s ought to be getting tired of karma fortunes by now.j.p.s ought to be getting tired of karma fortunes by now.j.p.s ought to be getting tired of karma fortunes by now.j.p.s ought to be getting tired of karma fortunes by now.j.p.s ought to be getting tired of karma fortunes by now.j.p.s ought to be getting tired of karma fortunes by now.j.p.s ought to be getting tired of karma fortunes by now.j.p.s ought to be getting tired of karma fortunes by now.j.p.s ought to be getting tired of karma fortunes by now.j.p.s ought to be getting tired of karma fortunes by now.j.p.s ought to be getting tired of karma fortunes by now.
 
Posts: 5,275
Karma: 98804578
Join Date: Apr 2011
Device: pb360
Quote:
Originally Posted by knc1 View Post
Thanks!
Pardon my brain-fart.
Everybody makes occasional mistakes.
j.p.s is offline   Reply With Quote
Reply

Tags
display, emonitor, kindle, screen


Forum Jump


All times are GMT -4. The time now is 12:25 AM.


MobileRead.com is a privately owned, operated and funded community.