drbawb / babou Goto Github PK
View Code? Open in Web Editor NEWBabou is a combination web-framework/ torrent-tracker written in Go.
License: Other
Babou is a combination web-framework/ torrent-tracker written in Go.
License: Other
Right now we have series
bundles which have episodes
as children.
Each episode bundle is tied to a single-file .torrent
which can then be downloaded.
This is fine for series that are currently running; but for archives of series we should add support to display multi-file torrents.
tl;dr: Support for printing a line-item for a series that is a multi-file torrent.
Need a goroutine that reaps database records periodically.
(For e.g: removing things such as expired sessions.)
When /torrents/create
renders the list of torrents: the one you just added is absent from the list.
Edit: /torrents/create
doesn't show any torrents after redirect.
I feel like the torrent should be sorted to the top of the list, or highlighted, or otherwise made visually distinct for that first redirect.
(see subj.)
The web server (app/server.go
) opens a global database handle.
Thus the tracker is unable to do database writes when the following CLI options are applied: -web-stack=false -track-stack=true
because the database connection pool won't be open.
Proposed fixes: open the pool lazily when it is requested [by any server], or have the main babou
process open the pool serially before the other server processes are spawned.
If a user visits the GET /logout route while they have no active session, the request panics.
When sending a message to the event bridge we recompute the info_hash
of the torrent's Info dictionary.
The info_hash
is known from the request parameters, and we know that the info_hash
is valid after the cache hit or cache fill.
We should either use that info_hash
OR store a trusted one along w/ the torrent model itself.
Profiling (pprof
) shows that tracker/announce.go
spends about 30% of its time computing the SHA1 of this dict (averaged over 20,000 requests). So this is definitely a worthwhile optimization.
The impl. is basically ready to go; but a case for this configuration has to be added to the new JSON config parser.
There's no form to populate attribute bundles from the /torrents/new
route.
hstore
is used for the attributes bundles, which store metadata that is used to organize collections of related torrents.
Currently hstore
only supports text
which means babou
is responsible for serializing its data to-and-from strings; which is both expensive and fragile.
postgres 9.4
adds support for types to hstore
documents so I may require a minimum version of PostgreSQL 9.4 to leverage this.
Hi drbawb,
i'm very interested in testing your work but have zero experience with GO
I appreciate the docs you already have written but i'm wondering if you could add some 101 type commands for me to compile the source?
thanks a bunch!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.