Goanseech

Act Version 0.9

Goanseech logo

Global anime series leech, a Multi source Series Retrieval System

License

Released under GNU General Public License 2. See file COPYING.

Exception for the files ServerTcp*, ClientTcp*, Ssl* which are a future part of POE, the author is Rocco Caputo <troc at netrus.net>, and they are released under the Perl licence.

Whats about

This whole thing is a spinoff of the Leverlåda IRC leech script xchat leverlada located at http://www.geocities.com/iwronsky/ and is graciously been hosted by Savannah providing a project page there, with cvsweb and download section.

One of its core parts was extracted and refunded into a stand-alone server. Its starting point is patternServer.pl. You need to invoke that one at some point and let it run. All the other parts revolve around that server.

Features in short

Using the aforementioned server are some utilities, listed briefly here, and explained more in detail below: Some error handling was added after release 0.3, in case there really is somebody else using this stuff, i urge to upgrade to latest CVS snapshot.

Installation

Unpack the archive somewhere (or fetch it from the CVS) and change into it. To run the different parts, you need to edit among others the file settings.pm (copy over the *.sample files over to a ~/.goanseech directory) to adjust it to your needs. The settings file is commented.

The README in the distro is most up to date concerning the install information, since i don't even know if a single person tried to use this, i wont put up much effort in the docu for the moment, you might change that by sending tons of mails requesting info ;)

Some global settings affecting most of the utilities that you might want to change:

seriesFile
the file where the series and they states are stored, actually set to be compatible with xchat Leverlåda
wishlist
the file where the wishes are stored, actually set to be compatible with xchat Leverlåda
user
the user name with which the user will connect, you have absolutely to change this one
passwd
the passwd with which the user will connect, you have absolutely to change this one
host
the host where the series servers runs on
port
the port where the series servers listens
uploaddir
the directory the where upload the ready files are moved to
errorfile
Log-file with eventual errors that are worth noting

Series server

This thing will read an actual list of definitions from a file (leve.series, defined in settings.pm) which consist of a pattern describing the textual part of some series (.e.g. archetype.*?force, the .*? being a Perl regexp meaning any char of any quantity in between those 2 words), the actually seeking episode number and the maximum episode number.

This server works with SSL, thus a valid certificate is needed. In case you don't have one, don't want to buy one, you can install the open-SSL software and generate one:

create a private RSA key: openssl genrsa -out plain-rsa.pem 2048

create a certificate: openssl req -new -key privkey.pem -out cert.csr

sign ourselves that certificate: openssl req -new -x509 -key privkey.pem -out plain-cert.pem -days 1095

There should be a try at a makefile to install this whole thing, its a try, there's some strange stuff happening, and since my copy is already installed, feel free to fix it and send the patch...

GTK/Gnome GUI-s

Next utilities, which ease the update of the series, their names all hold somewhere the sequence GUI in them, the first part beeing usually the widget set they use (as e.g. gtkGUI.pl): they fire up a Perl-GTK/gnome interface which displays a listing of the patterns with their boundaries, with spin boxes to increase/decrease those boundaries. The Gnome and Gtk-clients are quite basic, actually its not possible to add intermediary episodes nor new series with those. A migration to Gtk2 now integrates a GUI with support of most of the abilities of the curses-client, you need some extra libs to run this client (. Averells Gtk2-POE adaptation and Jodrells FormFactory).

Directory watcher

This script watches a given number of directories for files and matches them against the patterns, if a new episode appeared an update on the server is made. This is either a one shot script, thought to be launched by cron or a standalone daemon (depending on the setting dirscan.

sample crontab line to activate this: 1/15 * * * * (cd ~/leverloda/goanseech; ./dirWatcher.pl )

The directories are stored inside of a configuration file, the actually already checked files stored in a temporary file.

Torrents extractor

This one fetches from rootdir specified in the settings-file and url.conf the URL's to some index pages with torrent links. After fetching those pages, they are parsed, the URLS are extracted, if, after consultation with the server, some link descriptions match, they are checked, if its a HTML-URL its added to the pages to parse, if its a torrent-URL its added to the URL's to fetch. Once the whole stack of pages to parse is worked through the list of found torrent files are pushed into a stack of bit-torrent calls and worked through by the client..

Several settings in settings.pm regulate this script

frequence
determines in which rhythm the web pages are parsed for new torrent links (default 1h),
uploaddelay
determines the time the bit-torrent will kept alive after completing the download, keep this reasonable, as at that moment you act as a seed for others,
uploaddir
the directory where complete files will be transferred to, actually the downloading happens in the local directory, so be sure to have enough space available...
excludeBadURLs
set to 1 this will have as effect that bad URL's are stored and no more tried, speeds up significantly further runs, but means also that on errors on the connection line hosts are wrongly tagged as unreachable.

Notes

Goanseech hasn't been verified by formal methods. It might (and probably will) perform badly in situations not foreseen.

Goanseech can handle multiple connections the scripts are still in alpha stage.

We encourage you to tweak. Please send us all the useful results. ;)

Troubleshooting

Make sure all the libs may be reached from the scripts

Even if i tried to work location independend, this might fail on some situations, so safest is to start the different parts from within the distribution directory.

Is your computer connected to the electric socket?

If you still can't start the script, make sure that you have all the necessary Perl modules installed on your system. (See lines "use ;" in *.pl and *.pm).

If you use the torrent extractor you need somewhere in your path the btdownloadheadless script

Read the README and if you still don't get it working drop me a mail.

Author

B. Boettcher went through this in lots of sleepless nights, driven by the never-ending frustration of having to work himself and not having a subdued avid leech slave fetching for him Tera-bytes of anime.

You want to be here too?! Of course! Everyone wants. Just send us some useful patch and your name will be immortalized here forever.

Contact

Ideas and bug reports, etc. are all appreciated. Even better, if you can make the code function better on one topic without making it function worse somewhere else, that'd be superb.

Send mail to: goanseech-user at nongnu.org. Its completely ok to post without subscribing.

Valid XHTML 1.0 Strict Valid CSS!