eustasy / phoenix Goto Github PK
View Code? Open in Web Editor NEWA lightweight BitTorrent Tracker written in PHP with an SQL backend.
License: MIT License
A lightweight BitTorrent Tracker written in PHP with an SQL backend.
License: MIT License
It makes sense that admin.php
and _onces/phoenix/once.test.initialise.php
both need to install the database. That should definitely be a function, and one that checks the global setting itself.
The $25 bounty on this issue has been claimed at Bountysource.
class.phoenix.php
If we list peers by completion instead of recency we should paginate requests to ensure we're not always showing the same peers and avoid spammers flooding the section.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
magnet:?xt=urn:btih:0a36a61cb46fc1444c95eb62185b777d65362ca9&dn=elementaryos-freya-i386.20150411.iso&tr=https%3A%2F%2Fashrise.com%3A443%2Fphoenix%2Fannounce&tr=http%3A%2F%2Flocal.localtest.me%2Fphoenix%2Fannounce.php
Binary: 6¦�´oÁDL•ëb�[w}e6,©
magnet:?xt=urn:btih:fc85dc999730a42de3924444aadbcfa183b5f388&dn=elementaryos-freya-amd64.20150411.iso&tr=https%3A%2F%2Fashrise.com%3A443%2Fphoenix%2Fannounce&tr=http%3A%2F%2Flocal.localtest.me%2Fphoenix%2Fannounce.php
Binary: ü…Ü™—0¤-ã’DDªÛÏ¡ƒµóˆd
_cron
.clean
as defined in _functions/phoenix/function.task.clean.php
optimize
as defined in _functions/phoenix/function.task.optimize.php
settings.default.php
to _settings/phoenix.default.php
function.*
to _functions/phoenix/*
once.*
to _onces/phoenix/*
hook.*
to _hooks/phoenix/*
See https://wiki.vuze.com/w/Scrape#Tracker_Scrape_Convention
once.sanitise.tracker.php
, explode the _GET
parameters.info_hash
in an array.maybe_binary_to_hex
$peer['info_hash']
for announce.$peer['info_hashes']
as the full array for scrape.function.torrent.scrape.php
to loop through the array for the WHERE
caluse.Tests should set any and all global parameters that these scripts check, and confirm that output protects against invalid characters and attacks. They will likely need several tests each.
once.announce.peer.event.php
once.announce.torrent.php
once.db.connect.php
once.sanitise.admin.php
once.sanitise.announce.address.php
once.sanitise.announce.optional.php
once.sanitise.tracker.php
once.scrape.output.php
once.scrape.torrent.php
once.scrape.tracker.php
once.stats.tracker.php
once.stats.tracker.php
once.test.initialise.php
is literally part of the testing system.There is a $50 open bounty on this issue. Add to the bounty at Bountysource.
We will likely want to sanitize all the variables appropriately before we do anything else.
function mysqli_array_build($connection, $sql)
function drop_table($connection, $settings, $table)
function mysqli_fetch_once($connection, $sql)
function peer_access($connection, $settings, $time, $peer)
function peer_completed($connection, $settings, $peer)
function peer_delete($connection, $settings, $peer)
function peer_new($connection, $settings, $time, $peer)
function maybe_binary_to_hex($binary)
function task($connection, $settings, $task, $value)
function tracker_allowed($connection, $settings)
function tracker_clean($connection, $settings, $time)
As it stands, there are some functions whose composition is not lended to unit testing. These should probably be fixed later, and we can work around the super-globals for now.
optimize_table
has no current failure states.tracker_error
contains an exit expression.Check if the directory is writable when there is no config file, then allow a user to input a MySQL username and password to install the tables and disable future installations on success.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
We can list peers more intelligently. Clients just starting a download don't need to know about a neighbour that has 0% as well, and completed downloads don't need to know each other either. Seeders being introduced to peers near completion speeds up conversion and improves ratios.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
phoenix.peer.delete.php
phoenix.download.complete.php
phoenix.peer.change.php
phoenix.peer.access.php
We have IPv6 on the server, but major changes need to be made for it to work.
[ ]
http://tools.ietf.org/html/rfc2732The $100 bounty on this issue has been claimed at Bountysource.
Only list torrents specifically allowed.
announce.php
and scrape.php
Support Endpoints IP:PORT
, rather than just seperate ports.
Also pertains to #3 IPv6.
This should be simple, but we might want to add a "listed" flag here.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
Allows for calculating total traffic, a neat if flawed metric.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
Provide some basic password security.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
Currently our variables are "sanatize", but it should be "sanitize".
Steps for configuring cron should go under a h3 header titled "Cron", immediately after the current Configuration section. Should be in a list-format to match the Installation section. Try to keep things as simple as possible, and maybe don't run both cron jobs at once, delay the backup for a couple of minutes. Always give root-relative file names in backticks, along with any code that needs changing. Make sure all code blocks are clearly labeled before they occur.
_cron/hourly/backup-database.sh
(path, username, password, database)_cron/hourly/clean-and-optimize.php
The $25 bounty on this issue has been claimed at Bountysource.
See Magnet URI Scheme - Clients
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
Using the torrents
table utilized for trackers that aren't open, add a count column for totals.
The $50 bounty on this issue has been claimed at Bountysource.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
Both admin.php
and tracker.stats.php
have version strings. Move to phoenix.php
maybe?
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.