Code Monkey home page Code Monkey logo

animesnake's Introduction

Anime Snake

Fetches new anime torrents automatically and notifies the user

I wanted a system that would automatically download the anime I cannot watch through (legal) streaming services and send a push to my cellphone when a new episode is available. I made it somewhat extensible.

It fetches the list of torrents from NyaaTorrents and adds torrent to transmission as new episodes are available. When the torrent is complete, it send a notification through PushBullet's API to my cell phone.

It scrapes the web page with Beautiful Soup 4. It uses transmission-rpc to communicate with a transmission daemon. It uses a SQLite database to store information about torrents. It's configurable through a YAML configuration file. It uses the JSON library to post requests to PushBullet's API.

Dependencies

  • JSON
  • PyYAML
  • sqlite3
  • transmissionrpc
  • urllib3

Configuration

Configuration looks like this:

pushservice: 'pushbullet' or 'pushjet'
pushbullet:
	device:
	token:
pushjet:
	secret:
series:
        - subber: 'HorribleSubs'
          name: 'Urara Meirochou'
          quality: '720p'

pushbullet.device and pushbullet.token are respectively the device identifier and Authorization Token used for the PushBullet API. pushjet.secret is the service secret for pushjet. series is a list, so you can put as many series as you want to download.

You need to create a SQLite database file called anime.db beforehand. Use this query to create the episodes table:

CREATE TABLE episodes(show text, number int, torhash text, complete int);

To Do

There are many things I should do to make this system truly extensible (and not just an hackish scrapper coded overnight)

  • Truly separate the scrapper, the torrent client, the database and the notifier part of the program
  • Make the update delay and other variables configurable
  • Properly document dependencies

animesnake's People

Contributors

newlunarfire avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.