Issue 4 - merge in Herman Rodgers branch - alot of work in it
So branching to new branch, and will merge my changes from itsmeg ontop will merge branch back to head once everyone happy its stable.
46
LazyLibrarian.app/Contents/Info.plist
Normal file
@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>NSUIElement</key>
|
||||
<string>1</string>
|
||||
<key>CFBundleAllowMixedLocalizations</key>
|
||||
<true/>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>applet</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>applet</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>MovieManager</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>aplt</string>
|
||||
<key>LSMinimumSystemVersionByArchitecture</key>
|
||||
<dict>
|
||||
<key>x86_64</key>
|
||||
<string>10.6</string>
|
||||
</dict>
|
||||
<key>LSRequiresCarbon</key>
|
||||
<true/>
|
||||
<key>WindowState</key>
|
||||
<dict>
|
||||
<key>dividerCollapsed</key>
|
||||
<false/>
|
||||
<key>eventLogLevel</key>
|
||||
<integer>-1</integer>
|
||||
<key>name</key>
|
||||
<string>ScriptWindowState</string>
|
||||
<key>positionOfDivider</key>
|
||||
<real>333</real>
|
||||
<key>savedFrame</key>
|
||||
<string>85 111 602 597 0 0 1280 778 </string>
|
||||
<key>selectedTabView</key>
|
||||
<string>event log</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
BIN
LazyLibrarian.app/Contents/MacOS/applet
Executable file
1
LazyLibrarian.app/Contents/PkgInfo
Normal file
@ -0,0 +1 @@
|
||||
APPLaplt
|
||||
BIN
LazyLibrarian.app/Contents/Resources/Scripts/main.scpt
Normal file
BIN
LazyLibrarian.app/Contents/Resources/applet.icns
Normal file
BIN
LazyLibrarian.app/Contents/Resources/applet.rsrc
Normal file
|
After Width: | Height: | Size: 362 B |
@ -0,0 +1,4 @@
|
||||
{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf320
|
||||
{\fonttbl}
|
||||
{\colortbl;\red255\green255\blue255;}
|
||||
}
|
||||
8
LazyLibrarian.py
Normal file → Executable file
@ -5,10 +5,9 @@ import lazylibrarian
|
||||
from lazylibrarian import webStart, logger
|
||||
|
||||
def main():
|
||||
|
||||
#DIFFEREMT
|
||||
# rename this thread
|
||||
threading.currentThread().name = "MAIN"
|
||||
|
||||
# Set paths
|
||||
if hasattr(sys, 'frozen'):
|
||||
lazylibrarian.FULL_PATH = os.path.abspath(sys.executable)
|
||||
@ -30,6 +29,11 @@ def main():
|
||||
if not lazylibrarian.SYS_ENCODING or lazylibrarian.SYS_ENCODING in ('ANSI_X3.4-1968', 'US-ASCII', 'ASCII'):
|
||||
lazylibrarian.SYS_ENCODING = 'UTF-8'
|
||||
|
||||
#check the version when the application starts
|
||||
from lazylibrarian import versioncheck
|
||||
lazylibrarian.CURRENT_VERSION = versioncheck.getVersion()
|
||||
LATEST_VERSION = versioncheck.checkGithub()
|
||||
|
||||
# Set arguments
|
||||
from optparse import OptionParser
|
||||
|
||||
|
||||
89
README.md
@ -1,71 +1,48 @@
|
||||
## LazyLibrarian
|
||||
#### Contributers
|
||||
* Current author: LibrarianMike
|
||||
* Original author: Mar2zz
|
||||
* Previous maintainer: itsmegb
|
||||
|
||||
#### IMPORTANT UPDATE
|
||||
As Mar2zz can no longer maintain LazyLibrarian, i have taken over.
|
||||
I don't have a lot of free time, but i will try my best to get a usable application.
|
||||
|
||||
itsmegb
|
||||
|
||||
#### PLEASE READ THE FOLLOWING
|
||||
Due to personal reasons I can't find the time anymore to work on this project. If you like it and know you way around in python, create a master repo of this for yourself and continue developing. Sometimes I have some minutes to spare, so I will contribute to your repo, but between now and a year ahead I am too busy with other projects that consume all 'spare' time that I have. So if you like to be master of a gitproject, feel free to use LazyLibrarian for it. When someone else has started developing in another repo I will delete this one and clone the other repo here.
|
||||
|
||||
To create a masterrepo: clone lazylibrarian into a folder, delete the .git folder inside and follow the normal instructions to start/upload your own repo.
|
||||
#### IMPORTANT
|
||||
|
||||
Author: Mar2zz
|
||||
Blogs: mar2zz.tweakblogs.net
|
||||
License: GNU GPL v3
|
||||
|
||||
|
||||
LazyLibrarian is a program to follow authors and grab metadata for all your digital reading needs. It uses the extensive GoogleBooks (for bookinfo) and Goodreads.com (for authorinfo) websites as a source, but I'd like to write locales too (like bol.com for dutch info. Other languages need to be added by others).
|
||||
|
||||
Feel free to post issues and featurerequests @ https://github.com/Mar2zz/LazyLibrarian/issues,
|
||||
though I am aware of the many bugs right now, and am solving them one at a time, LL is very alpha, so use at own risk!.
|
||||
|
||||
There may be many non working options/links during this Work In Progress-stage.
|
||||
|
||||
If you know css very well, feel free to change the look by adding pull-requests, I am aware of the fact that it is one ugly monstrous webapp right now
|
||||
|
||||
##Screenshot
|
||||
<img src="http://tweakers.net/ext/f/nRWbGC8qWH2y2BqYNVHUJuIn/full.png" width="800">
|
||||
<img src="http://tweakers.net/ext/f/4gmyYa6Wf8zcd0WpbanIGFwl/full.png" width="800">
|
||||
|
||||
Yes, it looks like headphones, that's because I am using it's datatables also for generating booktables. I also copied a lot of code from Headphones, CouchPotato and Sickbeard. I am learning python, so I hope my coding will become better with practice (consider when you laugh out loud about my code that I didn't know any python a few months ago)... Taking babysteps ;)
|
||||
#### LazyLibrarian
|
||||
LazyLibrarian is a program to follow authors and grab metadata for all your digital reading needs.
|
||||
It uses Goodreads.com (for author info and book info) websites as a source. License: GNU GPL v3
|
||||
|
||||
Right now its capable of the following:
|
||||
* find authors or books and add them to the database
|
||||
* list all books of an author and add them as 'wanted'.
|
||||
* LazyLibrarian will search a nzb-file for that book (only Newznab supported (e.g. nzb.su)
|
||||
* Find authors and add them to the database
|
||||
* List all books of an author and add them as 'wanted'.
|
||||
* LazyLibrarian will search a nzb-file for that book (only Newznab and nzbmatrix are currently supported)
|
||||
* If a nzb is found it will be send to sabnzbd or saved in a blackhole where your downloadapp can pick it up.
|
||||
* When processing the downloaded books it will save a coverpicture (if available) and save all metadata into metadata.opf next to the bookfile (calibre compatible format)
|
||||
* The new theme for the site allows it to be accessed (and usable) from devices with a smaller screen (such as an iPad)
|
||||
|
||||
##Screenshots
|
||||
<img src="http://i.imgur.com/O8awy.png" width="600">
|
||||
<img src="http://i.imgur.com/fr0yE.png" width="600">
|
||||
<img src="http://i.imgur.com/AOgh1.png" width="600">
|
||||
|
||||
## Install:
|
||||
LazyLibrarian runs by default @ port 5299 at http://hostname:5299/home.
|
||||
LazyLibrarian runs by default on port 8082 at http://localhost:8082/
|
||||
|
||||
Linux:
|
||||
Linux / Mac OS X:
|
||||
|
||||
* Install Python 2.6 or higher
|
||||
* Git clone/extract LL wherever you like
|
||||
* Run "python LazyLibrarian.py -daemon" to start in deamon mode
|
||||
* Set your username & password in the settings if you want.
|
||||
* Fill in all the config stuff
|
||||
* Run "python LazyLibrarian.py -d" to start in deamon mode
|
||||
* Fill in all the config fields
|
||||
|
||||
Windows:
|
||||
|
||||
* Install Python 2.6 or higher
|
||||
* Double-click the Headphones.py file (you may need to right click and click 'Open With' -> Python)
|
||||
* Fill in all the config fields
|
||||
|
||||
Ubuntu (init.d script):
|
||||
|
||||
* Copy "initd.ubuntu" to /etc/init.d/lazylibrarian - > "sudo cp initd.ubuntu /etc/init.d/lazylibrarian"
|
||||
* Copy "default.ubuntu" to /etc/default/lazylibrarian - > "sudo cp default.ubuntu /etc/default/lazylibrarian"
|
||||
* Edit the required daemon settings in /etc/default/lazylibrarian - > editor /etc/default/lazylibrarian
|
||||
* If your LL installation isn't in "/opt/lazylibrarian/", make sure to change the path there also!
|
||||
* Make executable "sudo chmod a+x /etc/init.d/lazylibrarian"
|
||||
* Add it to the startup items: "sudo update-rc.d lazylibrarian defaults"
|
||||
* Start with "sudo service lazylibrarian start"
|
||||
|
||||
## Update
|
||||
Just run git pulls, build a update-through-interface soon enough.
|
||||
|
||||
## Remarks
|
||||
Need an logo/favicon/icon badly. Made a temporary one. If you feel creative, go ahead.
|
||||
|
||||
|
||||
|
||||
|
||||
* Copy "ubuntu.initd" to /etc/init.d/lazylibrarian - > "sudo cp ubuntu.initd /etc/init.d/lazylibrarian"
|
||||
* Copy "default.ubuntu" to /etc/default/lazylibrarian - > "sudo cp default.ubuntu /etc/default/lazylibrarian"
|
||||
* Edit the required daemon settings in /etc/default/lazylibrarian - > editor /etc/default/lazylibrarian
|
||||
* If your LL installation isn't in "/opt/lazylibrarian/", make sure to change the path there also!
|
||||
* Make executable "sudo chmod a+x /etc/init.d/lazylibrarian"
|
||||
* Add it to the startup items: "sudo update-rc.d lazylibrarian defaults"
|
||||
* Start with "sudo service lazylibrarian start"
|
||||
0
cherrypy/LICENSE.txt
Normal file → Executable file
0
cherrypy/__init__.py
Normal file → Executable file
0
cherrypy/_cpchecker.py
Normal file → Executable file
0
cherrypy/_cpcompat.py
Normal file → Executable file
0
cherrypy/_cpconfig.py
Normal file → Executable file
0
cherrypy/_cpdispatch.py
Normal file → Executable file
2
cherrypy/_cperror.py
Normal file → Executable file
@ -202,7 +202,7 @@ class HTTPRedirect(CherryPyException):
|
||||
# 2. a URL relative to root (e.g. "/dummy")
|
||||
# 3. a URL relative to the current path
|
||||
# Note that any query string in cherrypy.request is discarded.
|
||||
url = _urljoin(cherrypy.url(), url)
|
||||
# url = _urljoin(cherrypy.url(), url)
|
||||
abs_urls.append(url)
|
||||
self.urls = abs_urls
|
||||
|
||||
|
||||
0
cherrypy/_cplogging.py
Normal file → Executable file
0
cherrypy/_cpmodpy.py
Normal file → Executable file
0
cherrypy/_cpnative_server.py
Normal file → Executable file
0
cherrypy/_cpreqbody.py
Normal file → Executable file
0
cherrypy/_cprequest.py
Normal file → Executable file
0
cherrypy/_cpserver.py
Normal file → Executable file
0
cherrypy/_cpthreadinglocal.py
Normal file → Executable file
0
cherrypy/_cptools.py
Normal file → Executable file
0
cherrypy/_cptree.py
Normal file → Executable file
0
cherrypy/_cpwsgi.py
Normal file → Executable file
0
cherrypy/_cpwsgi_server.py
Normal file → Executable file
0
cherrypy/favicon.ico
Normal file → Executable file
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
0
cherrypy/lib/__init__.py
Normal file → Executable file
0
cherrypy/lib/auth.py
Normal file → Executable file
0
cherrypy/lib/auth_basic.py
Normal file → Executable file
0
cherrypy/lib/auth_digest.py
Normal file → Executable file
0
cherrypy/lib/caching.py
Normal file → Executable file
0
cherrypy/lib/covercp.py
Normal file → Executable file
0
cherrypy/lib/cpstats.py
Normal file → Executable file
0
cherrypy/lib/cptools.py
Normal file → Executable file
0
cherrypy/lib/encoding.py
Normal file → Executable file
0
cherrypy/lib/http.py
Normal file → Executable file
0
cherrypy/lib/httpauth.py
Normal file → Executable file
0
cherrypy/lib/httputil.py
Normal file → Executable file
0
cherrypy/lib/jsontools.py
Normal file → Executable file
0
cherrypy/lib/profiler.py
Normal file → Executable file
0
cherrypy/lib/reprconf.py
Normal file → Executable file
0
cherrypy/lib/sessions.py
Normal file → Executable file
0
cherrypy/lib/static.py
Normal file → Executable file
0
cherrypy/lib/xmlrpc.py
Normal file → Executable file
0
cherrypy/process/__init__.py
Normal file → Executable file
0
cherrypy/process/plugins.py
Normal file → Executable file
0
cherrypy/process/servers.py
Normal file → Executable file
0
cherrypy/process/win32.py
Normal file → Executable file
0
cherrypy/process/wspbus.py
Normal file → Executable file
0
cherrypy/scaffold/__init__.py
Normal file → Executable file
0
cherrypy/scaffold/apache-fcgi.conf
Normal file → Executable file
0
cherrypy/scaffold/example.conf
Normal file → Executable file
0
cherrypy/scaffold/site.conf
Normal file → Executable file
0
cherrypy/scaffold/static/made_with_cherrypy_small.png
Normal file → Executable file
|
Before Width: | Height: | Size: 7.3 KiB After Width: | Height: | Size: 7.3 KiB |
0
cherrypy/test/__init__.py
Normal file → Executable file
0
cherrypy/test/_test_decorators.py
Normal file → Executable file
0
cherrypy/test/_test_states_demo.py
Normal file → Executable file
0
cherrypy/test/benchmark.py
Normal file → Executable file
0
cherrypy/test/checkerdemo.py
Normal file → Executable file
0
cherrypy/test/fastcgi.conf
Normal file → Executable file
0
cherrypy/test/fcgi.conf
Normal file → Executable file
0
cherrypy/test/helper.py
Normal file → Executable file
0
cherrypy/test/logtest.py
Normal file → Executable file
0
cherrypy/test/modfastcgi.py
Normal file → Executable file
0
cherrypy/test/modfcgid.py
Normal file → Executable file
0
cherrypy/test/modpy.py
Normal file → Executable file
0
cherrypy/test/modwsgi.py
Normal file → Executable file
0
cherrypy/test/native-server.ini
Normal file → Executable file
0
cherrypy/test/static/dirback.jpg
Normal file → Executable file
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |