{ "info": { "author": "Mathieu Pasquet", "author_email": "pleaseshare@mathieui.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Flask", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Affero General Public License v3", "Natural Language :: English", "Natural Language :: French", "Operating System :: POSIX :: Linux", "Programming Language :: JavaScript", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3 :: Only", "Topic :: Communications :: File Sharing", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Text Processing :: Markup :: HTML" ], "description": "PleaseShare\n===========\n\nPleaseShare is a file-sharing website that aims to decentralize\nfile-sharing through the use of bittorrent, DHT, and webseeds.\n\nA demo instance is available at share.jeproteste.info_.\n\nGet started\n-----------\n\nRetrieve the project from gitorious_, github_, or `my own git server`_:\n\n::\n\n $ git clone git://gitorious.org/pleaseshare/pleaseshare.git\n\nThen install the dependencies (assuming you are using a virtualenv):\n\n::\n\n $ cd pleaseshare\n $ pip install -r requirements.txt\n\nYou also need **Python 3.4**.\n\nAfter this, you can start coding, testing, translating (see the bottom section of this page for details), etc.\n\nInstall\n-------\n\n(do the Get started thing before that)\n\nFirst, copy the ``pleaseshare/default_settings.py`` file to ``pleaseshare/local_settings.cfg``\nand edit it to fit your needs. Alternatively, you can set the ``$PLEASESHARE_CONFIG``\nenvironment variable to the absolute path of your config file (if a ``local_settings.cfg`` file\nis present, it will still override it, though). Every option is commented and has a purpose,\nand you MUST consider changing the following:\n\n- ``SECRET_KEY`` and ``WTF_CSRF_SECRET_KEY``, both set to the value of a local ``key`` variable\n- ``SQLALCHEMY_DATABASE_URI`` for database connection settings\n- ``MAX_CONTENT_LENGTH`` for the maximal upload file size\n\nOnce everything is set, you only have to create the database:\n\n::\n\n $ ./make_db.py\n\nIn order to deploy PleaseShare, you can follow the flask `deployment guide`_.\n\n.. _deployment guide: http://flask.pocoo.org/docs/deploying/\n\nMy favourite deployment option is uwsgi with nginx or lighttpd.\n\nExample uwsgi+nginx deployment\n------------------------------\n\n``uwsgi.ini`` file:\n\n::\n\n [uwsgi]\n socket = 127.0.0.1:4444\n master = true\n plugin = python3\n chdir = /home/flask/pleaseshare/\n module = pleaseshare:app\n processes = 4\n\nNginx configuration section:\n\n::\n\n server {\n listen 80;\n server_name share.example.com;\n client_max_body_size 50m;\n\n location / {\n include uwsgi_params;\n uwsgi_pass 127.0.0.1:4444;\n }\n }\n\n server {\n listen 80;\n server_name files.example.com;\n\n location / {\n root /home/flask/pleaseshare/uploads/;\n autoindex off;\n }\n }\n\n(assuming ``UPLOAD_FOLDER`` is set to ``\"uploads\"``, and ``UPLOADED_FILES_URL``\nto ``\"http://files.example.com/\"``)\n\n\nI also usually use supervisord_ to manage my python web applications:\n\n::\n\n [program:share]\n command=uwsgi uwsgi.ini\n directory=/home/flask/pleaseshare/\n user=flask\n redirect_stderr=true\n autostart=true\n autorestart=true\n\nBut manually running ``uwsgi uwsgi.ini`` works fine too.\n\nMisc\n----\n\nSome indications about how webseeds work might be in order.\n\n- When the torrent has a single file, then it\u2019s easy: the webseed is the complete url of the file.\n- When the torrent is multifile, then the webseed url is the url of the parent directory (I\u2019m talking about the torrents in PleaseShare, which are always contained in a parent directory named after the archive name).\n\nFor example, you upload a toto.tar.gz archive, you will have a url like /view/48a3-[\u2026]/,\ncontaining a 'toto' directory, which will contain the files inside the archive.\n\nThe webseed url should **not** contain the 'toto' directory, but the parent\nlevel; and, of course, file indexing should be disabled, or the file generated\nby the webserver might cause problems to some torrent clients.\n\nSo let\u2019s say you want to add a source to the torrent using your personal\nwebserver (again for the toto.tar.gz torrent), you will have to put something\nlike that as a webseed: http://my.example.com/uploads/ which will contain a ``toto``\ndirectory.\n\nReporting bugs\n--------------\n\nAs of now, no public bug tracker is available, but you can come report bugs or say a nice thing or\ntwo on the XMPP chatroom `share@chat.jeproteste.info`_. You can also send me emails to\n`pleaseshare@mathieui.net`_.\n\nLicense\n-------\n\nPleaseShare is released under the terms of the `GNU Affero General\nPublic License v3`_.\n\nPleaseShare also contains some files from the `Deluge torrent client`_,\nwhich is licenced under the `GNU General Public Licence v3`_.\n\nContributors\n------------\n\n- mathieui - main developer\n- Cynddl - UI design magic\n- kaliko - fixes\n\nNotes on translating\n--------------------\n\npybabel is currently `broken on python 3.4`_, so you will need to patch babel 1.3 with:\n\n::\n\n diff --git a/babel/messages/frontend.py b/babel/messages/frontend.py\n index 144bc98..94e09e9 100755\n --- a/babel/messages/frontend.py\n +++ b/babel/messages/frontend.py\n @@ -128,7 +128,7 @@ class compile_catalog(Command):\n \n for idx, (locale, po_file) in enumerate(po_files):\n mo_file = mo_files[idx]\n - infile = open(po_file, 'r')\n + infile = open(po_file, 'rb')\n try:\n catalog = read_po(infile, locale)\n finally:\n @@ -439,7 +439,7 @@ class init_catalog(Command):\n log.info('creating catalog %r based on %r', self.output_file,\n self.input_file)\n \n - infile = open(self.input_file, 'r')\n + infile = open(self.input_file, 'rb')\n try:\n # Although reading from the catalog template, read_po must be fed\n # the locale in order to correctly calculate plurals\n @@ -554,7 +554,7 @@ class update_catalog(Command):\n if not domain:\n domain = os.path.splitext(os.path.basename(self.input_file))[0]\n \n - infile = open(self.input_file, 'U')\n + infile = open(self.input_file, 'rb')\n try:\n template = read_po(infile)\n finally:\n @@ -566,7 +566,7 @@ class update_catalog(Command):\n for locale, filename in po_files:\n log.info('updating catalog %r based on %r', filename,\n self.input_file)\n - infile = open(filename, 'U')\n + infile = open(filename, 'rb')\n try:\n catalog = read_po(infile, locale=locale, domain=domain)\n finally:\n @@ -577,7 +577,7 @@ class update_catalog(Command):\n tmpname = os.path.join(os.path.dirname(filename),\n tempfile.gettempprefix() +\n os.path.basename(filename))\n - tmpfile = open(tmpname, 'w')\n + tmpfile = open(tmpname, 'wb')\n try:\n try:\n write_po(tmpfile, catalog,\n @@ -760,7 +760,7 @@ class CommandLineInterface(object):\n \n for idx, (locale, po_file) in enumerate(po_files):\n mo_file = mo_files[idx]\n - infile = open(po_file, 'r')\n + infile = open(po_file, 'rb')\n try:\n catalog = read_po(infile, locale)\n finally:\n @@ -1121,7 +1121,7 @@ class CommandLineInterface(object):\n tmpname = os.path.join(os.path.dirname(filename),\n tempfile.gettempprefix() +\n os.path.basename(filename))\n - tmpfile = open(tmpname, 'w')\n + tmpfile = open(tmpname, 'wb')\n try:\n try:\n write_po(tmpfile, catalog,\n\nAfter that, you should be able to run ``make trans`` to extract/update\ntranslations, and ``make compiletrans`` to generate an up-to-date ``.mo`` file.\n\n.. _GNU Affero General Public License v3 : http://www.gnu.org/licenses/agpl-3.0.html\n.. _Deluge torrent client : http://deluge-torrent.org/\n.. _GNU General Public Licence v3 : https://www.gnu.org/licenses/gpl-3.0.html\n.. _share.jeproteste.info: http://share.jeproteste.info\n.. _supervisord: http://supervisord.org/\n.. _gitorious: https://git.gitorious.org/pleaseshare/pleaseshare.git\n.. _github: https://github.com/mathieui/pleaseshare.git\n.. _my own git server: http://git.jeproteste.info/pleaseshare\n.. _broken on python 3.4: https://github.com/mitsuhiko/babel/issues/91\n.. _share@chat.jeproteste.info: xmpp:share@chat.jeproteste.info?join\n.. _pleaseshare@mathieui.net: mailto:pleaseshare@mathieui.net", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/mathieui/pleaseshare/releases", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://pleaseshare.mathieui.net", "keywords": "flask filesharing pleaseshare web", "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "pleaseshare", "package_url": "https://pypi.org/project/pleaseshare/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/pleaseshare/", "project_urls": { "Download": "https://github.com/mathieui/pleaseshare/releases", "Homepage": "http://pleaseshare.mathieui.net" }, "release_url": "https://pypi.org/project/pleaseshare/0.5/", "requires_dist": null, "requires_python": null, "summary": "A file-sharing web application", "version": "0.5" }, "last_serial": 1412537, "releases": { "0.5": [ { "comment_text": "", "digests": { "md5": "37d3e47327f8926d308bca8d16764210", "sha256": "b76d260203c9c3aa8e62a486e565ab9859746158cbe950d574a4fafd777d903c" }, "downloads": -1, "filename": "pleaseshare-0.5.tar.gz", "has_sig": true, "md5_digest": "37d3e47327f8926d308bca8d16764210", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 251243, "upload_time": "2015-02-06T11:52:01", "url": "https://files.pythonhosted.org/packages/71/28/529c58e2af28641e6638ae0c8a1a4df49fa75375bfa95a79ef4c1e4cafca/pleaseshare-0.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "37d3e47327f8926d308bca8d16764210", "sha256": "b76d260203c9c3aa8e62a486e565ab9859746158cbe950d574a4fafd777d903c" }, "downloads": -1, "filename": "pleaseshare-0.5.tar.gz", "has_sig": true, "md5_digest": "37d3e47327f8926d308bca8d16764210", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 251243, "upload_time": "2015-02-06T11:52:01", "url": "https://files.pythonhosted.org/packages/71/28/529c58e2af28641e6638ae0c8a1a4df49fa75375bfa95a79ef4c1e4cafca/pleaseshare-0.5.tar.gz" } ] }