Skip to content

benweitzman/Djembe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DJEMBE A django based torrent tracker and frontend extended by plugins for different applications.

Tracker: Operates identically to conventional trackers, just implemented in python. View http://en.wikipedia.org/wiki/BitTorrent_tracker for more information. Based on protocal defined: http://wiki.theory.org/BitTorrentSpecification

The tracker uses a database of peers to log which users are downloading which torrents and the progress attributed to said torrents. Each torrent is dynamically generated with an announce URL which includes the users private key.

Plugins: Each plugin defines one model that has a one-to-one relationship with a torrent. These act as the 'atomic' unit of each plugin. These atomic units are grouped together in increasingly complex ways to organize torrents in whatever way makes sense for the given plugin.

Music

The top level model in Music is Artist. Each artist (or group of artist) has a number of Albums, and each Album can have a number of Album Release each having a number of Release Formats, the atomic unit for this plugin. The general flow and UI is based off of what.cd

Movies

This plugin operates similarly to above: People > Movie > Edition > Movie Format (The relationship between Movie and People is split into four categories: Actors, Producers, Writers, and Directors where Actors have an additional property relating them to the movie, which is the Role).

Backup

The top level is the Backup User > Backup > Version. The Backup User requires a special kind of UserProfile because of a number of special cases regarding ratio. The Backup plugin is intended to create a platform for users to trade unused harddrive space for offsite backup and redundancy. The rules governing the ratio are as follows:

-Users have to backup other users content as much as they want their content
 backed up. For example, if a User wants to back up a 1GB file with 5x redundancy
 they will need to download a total of 5GB of other users content.

-A priority system is associated with torrents that have not yet reached their
 desired redundancy.

-Each User of the site has a number of priority points that they can use to
 incentivize users to backup their content. Priority points are assigned to
 backups as a whole. Each version inherits the priority points of its parent.

About

Tracker frontend

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published