Archive for February, 2010

Creating An Overly Simple RSS downloader in Python

February 16th, 2010

I Wrote this script the other day as I was getting more and more annoyed that my version of uTorrent wouldn’t download torrents from torrentbytes for reasons that I still am not sure of. Because of this I created a new script that fits my purpose.

The script is written for the TorrentBytes tracker but you should be able to modify the code to work on other sites too. Anyway here it is

#!/usr/bin/python

#######################################
# RSS Downloader for torrenbytes
# Programmed by Alan MacGregor
#######################################
import os
import sys
from commands import getoutput

###Get Arguments
option = ""
if len(sys.argv) > 1:
 if sys.argv[1] == "-c":
  option =  "check"
 elif sys.argv[1] == "-d":
  option = "download"
else:
 option = "default"

###User Required Variables
cookie_file   = "/home/alan/rss_downloaders/.lynx_cookies"
search_filter = "TV.Show.*720p|" + \
                "Other.TV.Show"
watch_folder  = "/torrent/watch/"
prev_down_loc = "/home/alan/rss_downloaders/torrentbytes_downloaded"
tb_passkey    = "##########################"
tb_username   = "##########################"

def downloadtorrent(torrent_name, link):
 os.system('wget -q --referer=http://www.torrentbytes.net/login.php --cookies=on --load-cookies="' + cookie_file + '" ' + \
           '--keep-session-cookies --save-cookies="' + cookie_file + '" "' + link + '"  -O ' + watch_folder + torrent_name)
 os.system('echo "' + torrent_name + '" >> "' + prev_down_loc + '"')

if option == "download":

 downloadtorrent("Manually_Downloaded_Torrent_File.torrent", sys.argv[2])
 sys.exit()



###Initialise Variables
listoftorrents = ""
previously_downloaded = getoutput('cat ' + prev_down_loc)
rss_feed              = getoutput('curl "http://www.torrentbytes.net/rss.php?passkey=' + tb_passkey + \
                                  '&username=' + tb_username + '&direct" | grep guid').replace("&amp;","&").split("<link>")



for torrent in rss_feed[1:]:
 torrent = torrent.split("</link>")[0].split("\r")

 #fix issue with curl data
 if len(torrent) > 1:
  torrent = torrent[0] + torrent[1].split("\n")[len(torrent) -1]
 else:
  torrent = torrent[0]

 if option == "check":
  print torrent.split("=")[2]

 episodes = search_filter.split("|")
 for episode in episodes:
  items = episode.split("*")
  found = "true"

  for filter in items:
   if filter not in torrent:
    found = "false"

  # Display torrent if all items are matched
  if found == "true":
   listoftorrents = listoftorrents + "|" + torrent

for link in listoftorrents[1:].split("|"):
 if len(link) > 0:
  torrent_name = link.split("&name=")[1]
  if option == "default":
   if torrent_name not in previously_downloaded:
    downloadtorrent(torrent_name)
    print "Downloaded:         " + torrent_name
   else:
    print "Already Downloaded: " + torrent_name
 else:
  print "No Torrents Found in Query"

All you have to do is modify the “###User Required Variables” section along with the cookie file and you should be set. I’d love to here what sites you’ve gotten this to work on plus if you can see where my code might have tried to join the failbus then please leave comments :)

PS3? Why?

February 5th, 2010

Recently I took the plunge into getting a nice shiny new PS3 Slim. It wasn’t a quick buy though, the price was still quite expensive even though the price has gone down since launch.

The main reason I moved over to the PS3 was that I have had enough of the Xbox 360, recently practices involving microsoft policies and their hardware monoplisation had begun to annoy me more than ever. One main issue was due to XBLA, my machine had been locked out from going online (guess why) however there was a game that I wanted to play so I took my hard drive and swapped it with my brothers so I can buy it on my brothers and then swap it back and play it on mine. After I LEGALLY paid for the game I was surprised (more pissed off) that I couldn’t play it because the game was not activated to play on this machine. How petty, I felt so enraged due to this that I havent played on the 360 since.

The PS3 is amazing, It’s so much quieter than the 360 which lets face it was like having car revving up inside at times, I can also watch blu-ray which looks great. The thing I like about it more is that it just works and has a much more liberal feel to it unlike the 360s capitalist feel, it allows the use of things such as BBC iPlayer to be involved (The Xbox 360 will not be getting the 360 due to issues with the BBC being unable to charge viewers for content), it just works.

I’m just about to preorder the box set of FFXIII which is something that I’ve been waiting for a while now, I can’t wait to play that soon.

BTW: My PSN username is severedspirit if anyone wants to add/check