From 49eb78d5c060f7a50677f9316f2c9fb14d1ab7ec Mon Sep 17 00:00:00 2001 From: "Casper V. Kristensen" Date: Fri, 19 Apr 2019 02:33:31 +0200 Subject: [PATCH] Publish. --- .gitignore | 358 +++++++++++++ LICENSE.txt | 674 ++++++++++++++++++++++++ README.md | 75 +++ setup.py | 50 ++ silverstream.pdf | Bin 0 -> 328654 bytes silverstream/__init__.py | 6 + silverstream/__main__.py | 4 + silverstream/bittorrent/__init__.py | 0 silverstream/bittorrent/bencode.py | 137 +++++ silverstream/bittorrent/client.py | 101 ++++ silverstream/bittorrent/crawler.py | 78 +++ silverstream/bittorrent/database.py | 189 +++++++ silverstream/bittorrent/dht/__init__.py | 0 silverstream/bittorrent/dht/config.py | 12 + silverstream/bittorrent/dht/node.py | 170 ++++++ silverstream/bittorrent/dht/peer.py | 104 ++++ silverstream/bittorrent/dht/protocol.py | 376 +++++++++++++ silverstream/bittorrent/dht/routing.py | 236 +++++++++ silverstream/bittorrent/dht/util.py | 36 ++ silverstream/bittorrent/indexer.py | 72 +++ silverstream/bittorrent/peer.py | 22 + silverstream/cli.py | 271 ++++++++++ silverstream/config.py | 56 ++ silverstream/player.py | 89 ++++ silverstream/stats.py | 61 +++ silverstream/util.py | 187 +++++++ tests/__init__.py | 0 tests/bittorrent/__init__.py | 0 tests/bittorrent/test_peer.py | 48 ++ tools/add_torrents.py | 53 ++ tools/migrate_database.py | 43 ++ tools/plot_stats.py | 47 ++ 32 files changed, 3555 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE.txt create mode 100644 README.md create mode 100644 setup.py create mode 100644 silverstream.pdf create mode 100644 silverstream/__init__.py create mode 100644 silverstream/__main__.py create mode 100644 silverstream/bittorrent/__init__.py create mode 100644 silverstream/bittorrent/bencode.py create mode 100644 silverstream/bittorrent/client.py create mode 100644 silverstream/bittorrent/crawler.py create mode 100644 silverstream/bittorrent/database.py create mode 100644 silverstream/bittorrent/dht/__init__.py create mode 100644 silverstream/bittorrent/dht/config.py create mode 100644 silverstream/bittorrent/dht/node.py create mode 100644 silverstream/bittorrent/dht/peer.py create mode 100644 silverstream/bittorrent/dht/protocol.py create mode 100644 silverstream/bittorrent/dht/routing.py create mode 100644 silverstream/bittorrent/dht/util.py create mode 100644 silverstream/bittorrent/indexer.py create mode 100644 silverstream/bittorrent/peer.py create mode 100644 silverstream/cli.py create mode 100644 silverstream/config.py create mode 100644 silverstream/player.py create mode 100644 silverstream/stats.py create mode 100644 silverstream/util.py create mode 100644 tests/__init__.py create mode 100644 tests/bittorrent/__init__.py create mode 100644 tests/bittorrent/test_peer.py create mode 100644 tools/add_torrents.py create mode 100644 tools/migrate_database.py create mode 100644 tools/plot_stats.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..50c49f2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,358 @@ + +# Created by https://www.gitignore.io/api/python,pycharm,pycharm+all,pycharm+iml,emacs +# Edit at https://www.gitignore.io/?templates=python,pycharm,pycharm+all,pycharm+iml,emacs + +### Emacs ### +# -*- mode: gitignore; -*- +*~ +\#*\# +/.emacs.desktop +/.emacs.desktop.lock +*.elc +auto-save-list +tramp +.\#* + +# Org-mode +.org-id-locations +*_archive + +# flymake-mode +*_flymake.* + +# eshell files +/eshell/history +/eshell/lastdir + +# elpa packages +/elpa/ + +# reftex files +*.rel + +# AUCTeX auto folder +/auto/ + +# cask packages +.cask/ +dist/ + +# Flycheck +flycheck_*.el + +# server auth directory +/server/ + +# projectiles files +.projectile + +# directory configuration +.dir-locals.el + +### PyCharm ### +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/modules.xml +# .idea/*.iml +# .idea/modules + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +### PyCharm Patch ### +# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721 + +# *.iml +# modules.xml +# .idea/misc.xml +# *.ipr + +# Sonarlint plugin +.idea/sonarlint + +### PyCharm+all ### +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff + +# Generated files + +# Sensitive or high-churn files + +# Gradle + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/modules.xml +# .idea/*.iml +# .idea/modules + +# CMake + +# Mongo Explorer plugin + +# File-based project format + +# IntelliJ + +# mpeltonen/sbt-idea plugin + +# JIRA plugin + +# Cursive Clojure plugin + +# Crashlytics plugin (for Android Studio and IntelliJ) + +# Editor-based Rest Client + +# Android studio 3.1+ serialized cache file + +### PyCharm+all Patch ### +# Ignores the whole .idea folder and all .iml files +# See https://github.com/joeblau/gitignore.io/issues/186 and https://github.com/joeblau/gitignore.io/issues/360 + +.idea/ + +# Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023 + +*.iml +modules.xml +.idea/misc.xml +*.ipr + +### PyCharm+iml ### +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff + +# Generated files + +# Sensitive or high-churn files + +# Gradle + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/modules.xml +# .idea/*.iml +# .idea/modules + +# CMake + +# Mongo Explorer plugin + +# File-based project format + +# IntelliJ + +# mpeltonen/sbt-idea plugin + +# JIRA plugin + +# Cursive Clojure plugin + +# Crashlytics plugin (for Android Studio and IntelliJ) + +# Editor-based Rest Client + +# Android studio 3.1+ serialized cache file + +### PyCharm+iml Patch ### +# Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023 + + +### Python ### +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# celery beat schedule file +celerybeat-schedule + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +### Python Patch ### +.venv/ + +### Python.VirtualEnv Stack ### +# Virtualenv +# http://iamzed.com/2009/05/07/a-primer-on-virtualenv/ +[Bb]in +[Ii]nclude +[Ll]ib +[Ll]ib64 +[Ll]ocal +[Ss]cripts +pyvenv.cfg +pip-selfcheck.json + +# End of https://www.gitignore.io/api/python,pycharm,pycharm+all,pycharm+iml,emacs diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/README.md b/README.md new file mode 100644 index 0000000..df0fada --- /dev/null +++ b/README.md @@ -0,0 +1,75 @@ +# Silverstream: *A fully decentralised music streaming platform* + +## Installation +Silverstream requires Python 3.7+ with the `libtorrent` library, as well as the `libmpv1` package from your local +package repository. The dependencies can be installed from the Debian repositories: +```bash +sudo apt install -y python3.7 python3-libtorrent libmpv1 +``` +**Or** from source: +```bash +# Python 3.7 (https://docs.python.org/3/using/unix.html#building-python) +sudo apt build-dep -y python3 +wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz +tar xf Python-3.7.1.tgz +cd Python-3.7.1 +./configure --enable-optimizations +make -j$(nproc) +sudo make altinstall + +# Libtorrent (https://dev.deluge-torrent.org/wiki/Building/libtorrent) +sudo apt build-dep -y libtorrent-rasterbar +wget https://github.com/arvidn/libtorrent/releases/download/libtorrent_1_1_11/libtorrent-rasterbar-1.1.11.tar.gz +tar xf libtorrent-rasterbar-1.1.11.tar.gz +cd libtorrent-rasterbar-1.1.11/ +PYTHON=$(which python3.7) ./configure --enable-python-binding --with-libiconv --disable-debug +make -j$(nproc) +sudo make install +sudo ldconfig +``` + +The libtorrent version from the Debian repository doesnt't seem to play nicely with Python 3.7, so please **check the +installation**: +```bash +python3.7 -c "import libtorrent; print(libtorrent.version)" +``` + +After installing the dependencies, the application can be installed using pip: +```bash +python3.7 -m pip install --upgrade https://git.caspervk.net/caspervk/silverstream/archive/master.tar.gz +``` + +## Usage +The program can be started by running `silverstream` or `python3.7 -m silverstream`, depending on system configuration. +```text +usage: silverstream [-h] [--interface interface] [--port port] [--load] [--stats] [-v] [--clean] [--crawler-nodes nodes] + [--crawler-delay seconds] [--crawler-await-bootstrap] [--indexer-workers workers] + [--indexer-save-torrents] [--btdht-seed host:port] + +optional arguments: + -h, --help show this help message and exit + --interface interface Network interface to bind to. (default: 0.0.0.0) + --port port Network port to listen listen on. Ports are bound consecutively from this port. + (default: 6881) + --load Load state from file (use 'save' from the cli to save). + --stats Save statistics to file. + -v, --verbose Increase verbosity level. Can be used multiple times. + --clean Remove data directory. + +Crawler: + --crawler-nodes nodes Number of BitTorrent DHT nodes to start. (default: 32) + --crawler-delay seconds Number of seconds to wait between starting each of the BitTorrent DHT nodes. (default: 1) + --crawler-await-bootstrap Wait for nodes to fully bootstrap before starting the next one. + +Indexer: + --indexer-workers workers Number of Indexer workers to start. (default: 25) + --indexer-save-torrents Save indexed torrents to torrents/. + +BitTorrent DHT: + --btdht-seed host:port BitTorrent DHT seed nodes. Overrides default seeds. Can be specified multiple times. +``` + +You may need to open some ports in your firewall. This command will allow a crawler with 128 nodes on UFW: +```bash +ufw allow 6881:7009/udp comment "silverstream" +``` diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..553cddc --- /dev/null +++ b/setup.py @@ -0,0 +1,50 @@ +# Always prefer setuptools over distutils +from setuptools import setup, find_packages +# To use a consistent encoding +from codecs import open +from os import path + +from silverstream import __author__, __version__, __licence__ + + +here = path.abspath(path.dirname(__file__)) + +# Get the long description from the README file +with open(path.join(here, "README.md"), encoding="utf-8") as f: + long_description = f.read() + + +setup( + name="silverstream", + version=__version__, + description="A fully decentralised music streaming platform", + long_description=long_description, + long_description_content_type="text/markdown", + url="https://silverstream.org", + project_urls={ + "Source": "https://example.com/me/silverstream.git" + }, + author=__author__, + classifiers=[ + "Development Status :: 3 - Alpha", + "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", + "Programming Language :: Python :: 3", + ], + python_requires=">=3.7", + keywords="silverstream music streaming bittorrent kademlia p2p", + license=__licence__, + packages=find_packages(exclude=["tests"]), + install_requires=[ + "python-mpv", + ], + extras_require={ + "dev": [ + "matplotlib" + ] + }, + entry_points={ + "console_scripts": [ + "silverstream = silverstream.cli:main" + ] + }, +) diff --git a/silverstream.pdf b/silverstream.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2182f9bcce8b50218d298ff4634a216308b4e068 GIT binary patch literal 328654 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