mirror of
https://github.com/onionshare/onionshare.git
synced 2024-12-25 15:29:42 -05:00
Merge branch 'update-locales' into develop
This commit is contained in:
commit
6dcdef6a15
@ -64,12 +64,13 @@ class Settings(object):
|
|||||||
"da": "Dansk", # Danish
|
"da": "Dansk", # Danish
|
||||||
"nl": "Nederlands", # Dutch
|
"nl": "Nederlands", # Dutch
|
||||||
"en": "English", # English
|
"en": "English", # English
|
||||||
"fi": "Suomi", # Finnish
|
# "fi": "Suomi", # Finnish
|
||||||
"fr": "Français", # French
|
"fr": "Français", # French
|
||||||
"gl": "Galego", # Galician
|
"gl": "Galego", # Galician
|
||||||
"de": "Deutsch", # German
|
"de": "Deutsch", # German
|
||||||
"el": "Ελληνικά", # Greek
|
"el": "Ελληνικά", # Greek
|
||||||
"is": "Íslenska", # Icelandic
|
"is": "Íslenska", # Icelandic
|
||||||
|
"id": "Bahasa Indonesia", # Indonesian
|
||||||
# "ga": "Gaeilge", # Irish
|
# "ga": "Gaeilge", # Irish
|
||||||
"it": "Italiano", # Italian
|
"it": "Italiano", # Italian
|
||||||
"ja": "日本語", # Japanese
|
"ja": "日本語", # Japanese
|
||||||
@ -79,10 +80,10 @@ class Settings(object):
|
|||||||
"pl": "Polski", # Polish
|
"pl": "Polski", # Polish
|
||||||
"pt_BR": "Português (Brasil)", # Portuguese Brazil
|
"pt_BR": "Português (Brasil)", # Portuguese Brazil
|
||||||
"pt_PT": "Português (Portugal)", # Portuguese Portugal
|
"pt_PT": "Português (Portugal)", # Portuguese Portugal
|
||||||
"sk": "Slovenčina", # Slovak
|
|
||||||
# "ro": "Română", # Romanian
|
# "ro": "Română", # Romanian
|
||||||
"ru": "Русский", # Russian
|
"ru": "Русский", # Russian
|
||||||
# "sr_Latn": "Srpska (latinica)", # Serbian (latin)
|
"sr_Latn": "Srpska (latinica)", # Serbian (latin)
|
||||||
|
"sk": "Slovenčina", # Slovak
|
||||||
"es": "Español", # Spanish
|
"es": "Español", # Spanish
|
||||||
"sv": "Svenska", # Swedish
|
"sv": "Svenska", # Swedish
|
||||||
# "te": "తెలుగు", # Telugu
|
# "te": "తెలుగు", # Telugu
|
||||||
|
@ -36,3 +36,75 @@ sphinx-intl update -p build/gettext -l de
|
|||||||
# Build German translated document
|
# Build German translated document
|
||||||
make -e SPHINXOPTS="-D language='de'" html
|
make -e SPHINXOPTS="-D language='de'" html
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Discoving which translations are >90% complete
|
||||||
|
|
||||||
|
Each OnionShare release should only include a language if >90% of the strings have been translated into it. The script `check-weblate.py` script can be used to make a few hundreds weblate API requests to determine this for you automatically. It requires using your weblate API key, which you can find in your [user profile](https://hosted.weblate.org/accounts/profile/#api).
|
||||||
|
|
||||||
|
```
|
||||||
|
$ poetry run ./check-weblate.py $WEBLATE_API_KEY
|
||||||
|
GET https://hosted.weblate.org/api/projects/onionshare/languages/
|
||||||
|
GET https://hosted.weblate.org/api/translations/onionshare/translations/hr/
|
||||||
|
GET https://hosted.weblate.org/api/translations/onionshare/translations/eo/
|
||||||
|
GET https://hosted.weblate.org/api/translations/onionshare/translations/ja/
|
||||||
|
<...snip...>
|
||||||
|
GET https://hosted.weblate.org/api/translations/onionshare/doc-tor/wo/ | error 404
|
||||||
|
GET https://hosted.weblate.org/api/translations/onionshare/doc-tor/ar/
|
||||||
|
GET https://hosted.weblate.org/api/translations/onionshare/doc-tor/it/
|
||||||
|
|
||||||
|
App translations >= 100%
|
||||||
|
=======================
|
||||||
|
English (en), 100.0%
|
||||||
|
|
||||||
|
App translations >= 90%
|
||||||
|
=======================
|
||||||
|
Arabic (ar), 95.0%
|
||||||
|
Bengali (bn), 95.0%
|
||||||
|
Catalan (ca), 93.5%
|
||||||
|
Chinese (Simplified) (zh_Hans), 98.0%
|
||||||
|
Chinese (Traditional) (zh_Hant), 95.0%
|
||||||
|
Croatian (hr), 95.0%
|
||||||
|
Danish (da), 94.5%
|
||||||
|
Dutch (nl), 92.6%
|
||||||
|
French (fr), 98.0%
|
||||||
|
Galician (gl), 97.5%
|
||||||
|
German (de), 95.0%
|
||||||
|
Greek (el), 98.0%
|
||||||
|
Icelandic (is), 98.0%
|
||||||
|
Indonesian (id), 98.0%
|
||||||
|
Italian (it), 94.5%
|
||||||
|
Japanese (ja), 94.5%
|
||||||
|
Kurdish (Central) (ckb), 94.5%
|
||||||
|
Norwegian Bokmål (nb_NO), 98.0%
|
||||||
|
Polish (pl), 95.0%
|
||||||
|
Portuguese (Brazil) (pt_BR), 95.0%
|
||||||
|
Portuguese (Portugal) (pt_PT), 92.6%
|
||||||
|
Russian (ru), 95.0%
|
||||||
|
Serbian (latin) (sr_Latn), 95.0%
|
||||||
|
Slovak (sk), 94.5%
|
||||||
|
Spanish (es), 98.0%
|
||||||
|
Swedish (sv), 94.5%
|
||||||
|
Turkish (tr), 98.0%
|
||||||
|
Ukrainian (uk), 98.0%
|
||||||
|
|
||||||
|
App translations >= 80%
|
||||||
|
=======================
|
||||||
|
Finnish (fi), 88.1%
|
||||||
|
|
||||||
|
Docs translations >= 100%
|
||||||
|
========================
|
||||||
|
English (en), 100.0%, 100.0%, 100.0%, 100.0%, 100.0%, 100.0%, 100.0%, 100.0%, 100.0%
|
||||||
|
Turkish (tr), 100.0%, 100.0%, 100.0%, 100.0%, 100.0%, 100.0%, 100.0%, 100.0%, 100.0%
|
||||||
|
Ukrainian (uk), 100.0%, 100.0%, 100.0%, 100.0%, 100.0%, 100.0%, 100.0%, 100.0%, 100.0%
|
||||||
|
|
||||||
|
Docs translations >= 90%
|
||||||
|
========================
|
||||||
|
|
||||||
|
|
||||||
|
Docs translations >= 80%
|
||||||
|
========================
|
||||||
|
German (de), 90.6%, 100.0%, 82.1%, 100.0%, 100.0%, 100.0%, 100.0%, 100.0%, 100.0%
|
||||||
|
Greek (el), 90.6%, 100.0%, 82.1%, 100.0%, 100.0%, 100.0%, 100.0%, 100.0%, 100.0%
|
||||||
|
Russian (ru), 90.6%, 100.0%, 82.1%, 100.0%, 100.0%, 100.0%, 100.0%, 100.0%, 100.0%
|
||||||
|
Spanish (es), 90.6%, 100.0%, 82.1%, 100.0%, 100.0%, 100.0%, 100.0%, 100.0%, 100.0%
|
||||||
|
```
|
||||||
|
153
docs/check-weblate.py
Executable file
153
docs/check-weblate.py
Executable file
@ -0,0 +1,153 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
import sys
|
||||||
|
import httpx
|
||||||
|
import asyncio
|
||||||
|
import time
|
||||||
|
|
||||||
|
|
||||||
|
api_token = None
|
||||||
|
languages = {}
|
||||||
|
app_translations = {}
|
||||||
|
docs_translations = {}
|
||||||
|
|
||||||
|
|
||||||
|
async def api(path):
|
||||||
|
url = f"https://hosted.weblate.org{path}"
|
||||||
|
|
||||||
|
async with httpx.AsyncClient() as client:
|
||||||
|
r = await client.get(
|
||||||
|
url, headers={"Authorization": f"Token {api_token}"}, timeout=30.0
|
||||||
|
)
|
||||||
|
|
||||||
|
if r.status_code == 200:
|
||||||
|
print(f"GET {url}")
|
||||||
|
return r.json()
|
||||||
|
else:
|
||||||
|
print(f"GET {url} | error {r.status_code}")
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
async def get_app_translation(lang_code):
|
||||||
|
global app_translations
|
||||||
|
obj = await api(f"/api/translations/onionshare/translations/{lang_code}/")
|
||||||
|
if obj:
|
||||||
|
app_translations[lang_code] = obj["translated_percent"]
|
||||||
|
|
||||||
|
|
||||||
|
async def get_docs_translation(component, lang_code):
|
||||||
|
global docs_translations
|
||||||
|
obj = await api(f"/api/translations/onionshare/{component}/{lang_code}/")
|
||||||
|
if obj:
|
||||||
|
if component not in docs_translations:
|
||||||
|
docs_translations[component] = {}
|
||||||
|
docs_translations[component][lang_code] = obj["translated_percent"]
|
||||||
|
|
||||||
|
|
||||||
|
async def app_percent_output(percent_min, percent_max=101):
|
||||||
|
out = []
|
||||||
|
for lang_code in languages:
|
||||||
|
if (
|
||||||
|
app_translations[lang_code] >= percent_min
|
||||||
|
and app_translations[lang_code] < percent_max
|
||||||
|
):
|
||||||
|
out.append(
|
||||||
|
f"{languages[lang_code]} ({lang_code}), {app_translations[lang_code]}%"
|
||||||
|
)
|
||||||
|
|
||||||
|
out.sort()
|
||||||
|
|
||||||
|
print(f"App translations >= {percent_min}%")
|
||||||
|
print("=======================")
|
||||||
|
print("\n".join(out))
|
||||||
|
|
||||||
|
print("")
|
||||||
|
|
||||||
|
|
||||||
|
async def docs_percent_output(percent_min, exclude=[]):
|
||||||
|
out = []
|
||||||
|
for lang_code in languages:
|
||||||
|
include_language = True
|
||||||
|
percentages = []
|
||||||
|
|
||||||
|
for component in docs_translations:
|
||||||
|
if lang_code not in docs_translations[component]:
|
||||||
|
include_language = False
|
||||||
|
break
|
||||||
|
|
||||||
|
percentages.append(docs_translations[component][lang_code])
|
||||||
|
|
||||||
|
if docs_translations[component][lang_code] < percent_min:
|
||||||
|
include_language = False
|
||||||
|
break
|
||||||
|
|
||||||
|
if include_language:
|
||||||
|
percentages = [f"{p}%" for p in percentages]
|
||||||
|
percentages = ", ".join(percentages)
|
||||||
|
out.append(f"{languages[lang_code]} ({lang_code}), {percentages}")
|
||||||
|
|
||||||
|
excluded = []
|
||||||
|
for s in out:
|
||||||
|
if s not in exclude:
|
||||||
|
excluded.append(s)
|
||||||
|
|
||||||
|
excluded.sort()
|
||||||
|
|
||||||
|
print(f"Docs translations >= {percent_min}%")
|
||||||
|
print("========================")
|
||||||
|
print("\n".join(excluded))
|
||||||
|
|
||||||
|
print("")
|
||||||
|
return excluded
|
||||||
|
|
||||||
|
|
||||||
|
async def main():
|
||||||
|
global api_token, languages, app_translations, docs_translations
|
||||||
|
|
||||||
|
if len(sys.argv) != 2:
|
||||||
|
print(f"Usage: {sys.argv[0]} API_KEY")
|
||||||
|
print(
|
||||||
|
"You can find your personal API key at: https://hosted.weblate.org/accounts/profile/#api"
|
||||||
|
)
|
||||||
|
return
|
||||||
|
|
||||||
|
api_token = sys.argv[1]
|
||||||
|
|
||||||
|
# Get the list of languages in the OnionShare project
|
||||||
|
res = await api("/api/projects/onionshare/languages/")
|
||||||
|
for obj in res:
|
||||||
|
languages[obj["code"]] = obj["language"]
|
||||||
|
|
||||||
|
# Get the app translations for each language
|
||||||
|
await asyncio.gather(*[get_app_translation(lang_code) for lang_code in languages])
|
||||||
|
|
||||||
|
# Get the documentation translations for each component for each language
|
||||||
|
for component in [
|
||||||
|
"doc-advanced",
|
||||||
|
"doc-develop",
|
||||||
|
"doc-features",
|
||||||
|
"doc-help",
|
||||||
|
"doc-index",
|
||||||
|
"doc-install",
|
||||||
|
"doc-security",
|
||||||
|
"doc-sphinx",
|
||||||
|
"doc-tor",
|
||||||
|
]:
|
||||||
|
docs_futures = []
|
||||||
|
for lang_code in languages:
|
||||||
|
docs_futures.append(get_docs_translation(component, lang_code))
|
||||||
|
|
||||||
|
await asyncio.gather(*docs_futures)
|
||||||
|
|
||||||
|
print("")
|
||||||
|
|
||||||
|
await app_percent_output(100)
|
||||||
|
await app_percent_output(90, 100)
|
||||||
|
await app_percent_output(80, 90)
|
||||||
|
|
||||||
|
out100 = await docs_percent_output(100)
|
||||||
|
out90 = await docs_percent_output(90, out100)
|
||||||
|
await docs_percent_output(80, out100 + out90)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
asyncio.run(main())
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: OnionShare 2.3.2\n"
|
"Project-Id-Version: OnionShare 2.3.2\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-05-03 21:48-0700\n"
|
"POT-Creation-Date: 2021-05-10 18:26-0700\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@ -72,54 +72,54 @@ msgstr ""
|
|||||||
msgid "When developing, it's convenient to run OnionShare from a terminal and add the ``--verbose`` (or ``-v``) flag to the command. This prints a lot of helpful messages to the terminal, such as when certain objects are initialized, when events occur (like buttons clicked, settings saved or reloaded), and other debug info. For example::"
|
msgid "When developing, it's convenient to run OnionShare from a terminal and add the ``--verbose`` (or ``-v``) flag to the command. This prints a lot of helpful messages to the terminal, such as when certain objects are initialized, when events occur (like buttons clicked, settings saved or reloaded), and other debug info. For example::"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../source/develop.rst:117
|
#: ../../source/develop.rst:121
|
||||||
msgid "You can add your own debug messages by running the ``Common.log`` method from ``onionshare/common.py``. For example::"
|
msgid "You can add your own debug messages by running the ``Common.log`` method from ``onionshare/common.py``. For example::"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../source/develop.rst:121
|
#: ../../source/develop.rst:125
|
||||||
msgid "This can be useful when learning the chain of events that occur when using OnionShare, or the value of certain variables before and after they are manipulated."
|
msgid "This can be useful when learning the chain of events that occur when using OnionShare, or the value of certain variables before and after they are manipulated."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../source/develop.rst:124
|
#: ../../source/develop.rst:128
|
||||||
msgid "Local Only"
|
msgid "Local Only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../source/develop.rst:126
|
#: ../../source/develop.rst:130
|
||||||
msgid "Tor is slow, and it's often convenient to skip starting onion services altogether during development. You can do this with the ``--local-only`` flag. For example::"
|
msgid "Tor is slow, and it's often convenient to skip starting onion services altogether during development. You can do this with the ``--local-only`` flag. For example::"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../source/develop.rst:164
|
#: ../../source/develop.rst:167
|
||||||
msgid "In this case, you load the URL ``http://onionshare:train-system@127.0.0.1:17635`` in a normal web-browser like Firefox, instead of using the Tor Browser."
|
msgid "In this case, you load the URL ``http://onionshare:train-system@127.0.0.1:17635`` in a normal web-browser like Firefox, instead of using the Tor Browser."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../source/develop.rst:167
|
#: ../../source/develop.rst:170
|
||||||
msgid "Contributing Translations"
|
msgid "Contributing Translations"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../source/develop.rst:169
|
#: ../../source/develop.rst:172
|
||||||
msgid "Help make OnionShare easier to use and more familiar and welcoming for people by translating it on `Hosted Weblate <https://hosted.weblate.org/projects/onionshare/>`_. Always keep the \"OnionShare\" in latin letters, and use \"OnionShare (localname)\" if needed."
|
msgid "Help make OnionShare easier to use and more familiar and welcoming for people by translating it on `Hosted Weblate <https://hosted.weblate.org/projects/onionshare/>`_. Always keep the \"OnionShare\" in latin letters, and use \"OnionShare (localname)\" if needed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../source/develop.rst:171
|
#: ../../source/develop.rst:174
|
||||||
msgid "To help translate, make a Hosted Weblate account and start contributing."
|
msgid "To help translate, make a Hosted Weblate account and start contributing."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../source/develop.rst:174
|
#: ../../source/develop.rst:177
|
||||||
msgid "Suggestions for Original English Strings"
|
msgid "Suggestions for Original English Strings"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../source/develop.rst:176
|
#: ../../source/develop.rst:179
|
||||||
msgid "Sometimes the original English strings are wrong, or don't match between the application and the documentation."
|
msgid "Sometimes the original English strings are wrong, or don't match between the application and the documentation."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../source/develop.rst:178
|
#: ../../source/develop.rst:181
|
||||||
msgid "File source string improvements by adding @kingu to your Weblate comment, or open a GitHub issue or pull request. The latter ensures all upstream developers see the suggestion, and can potentially modify the string via the usual code review processes."
|
msgid "File source string improvements by adding @kingu to your Weblate comment, or open a GitHub issue or pull request. The latter ensures all upstream developers see the suggestion, and can potentially modify the string via the usual code review processes."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../source/develop.rst:182
|
#: ../../source/develop.rst:185
|
||||||
msgid "Status of Translations"
|
msgid "Status of Translations"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../source/develop.rst:183
|
#: ../../source/develop.rst:186
|
||||||
msgid "Here is the current translation status. If you want start a translation in a language not yet started, please write to the mailing list: onionshare-dev@lists.riseup.net"
|
msgid "Here is the current translation status. If you want start a translation in a language not yet started, please write to the mailing list: onionshare-dev@lists.riseup.net"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
162
docs/poetry.lock
generated
162
docs/poetry.lock
generated
@ -6,6 +6,14 @@ category = "main"
|
|||||||
optional = false
|
optional = false
|
||||||
python-versions = "*"
|
python-versions = "*"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "async-generator"
|
||||||
|
version = "1.10"
|
||||||
|
description = "Async generators and context managers for Python 3.5+"
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.5"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "babel"
|
name = "babel"
|
||||||
version = "2.9.0"
|
version = "2.9.0"
|
||||||
@ -49,6 +57,17 @@ category = "main"
|
|||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "contextvars"
|
||||||
|
version = "2.4"
|
||||||
|
description = "PEP 567 Backport"
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = "*"
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
immutables = ">=0.9"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "docutils"
|
name = "docutils"
|
||||||
version = "0.16"
|
version = "0.16"
|
||||||
@ -57,6 +76,48 @@ category = "main"
|
|||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "h11"
|
||||||
|
version = "0.12.0"
|
||||||
|
description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1"
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.6"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "httpcore"
|
||||||
|
version = "0.13.3"
|
||||||
|
description = "A minimal low-level HTTP client."
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.6"
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
h11 = ">=0.11,<0.13"
|
||||||
|
sniffio = ">=1.0.0,<2.0.0"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
http2 = ["h2 (>=3,<5)"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "httpx"
|
||||||
|
version = "0.18.1"
|
||||||
|
description = "The next generation HTTP client."
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.6"
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
async-generator = {version = "*", markers = "python_version < \"3.7\""}
|
||||||
|
certifi = "*"
|
||||||
|
httpcore = ">=0.13.0,<0.14.0"
|
||||||
|
rfc3986 = {version = ">=1.3,<2", extras = ["idna2008"]}
|
||||||
|
sniffio = "*"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
brotli = ["brotlicffi (>=1.0.0,<2.0.0)"]
|
||||||
|
http2 = ["h2 (>=3.0.0,<4.0.0)"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "idna"
|
name = "idna"
|
||||||
version = "2.10"
|
version = "2.10"
|
||||||
@ -73,6 +134,17 @@ category = "main"
|
|||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "immutables"
|
||||||
|
version = "0.15"
|
||||||
|
description = "Immutable Collections"
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.5"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
test = ["flake8 (>=3.8.4,<3.9.0)", "pycodestyle (>=2.6.0,<2.7.0)"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "jinja2"
|
name = "jinja2"
|
||||||
version = "2.11.2"
|
version = "2.11.2"
|
||||||
@ -149,6 +221,20 @@ urllib3 = ">=1.21.1,<1.27"
|
|||||||
security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"]
|
security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"]
|
||||||
socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"]
|
socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rfc3986"
|
||||||
|
version = "1.5.0"
|
||||||
|
description = "Validating URI References per RFC 3986"
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = "*"
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
idna = {version = "*", optional = true, markers = "extra == \"idna2008\""}
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
idna2008 = ["idna"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "six"
|
name = "six"
|
||||||
version = "1.15.0"
|
version = "1.15.0"
|
||||||
@ -157,6 +243,17 @@ category = "main"
|
|||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "sniffio"
|
||||||
|
version = "1.2.0"
|
||||||
|
description = "Sniff out which async library your code is running under"
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.5"
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
contextvars = {version = ">=2.1", markers = "python_version < \"3.7\""}
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "snowballstemmer"
|
name = "snowballstemmer"
|
||||||
version = "2.0.0"
|
version = "2.0.0"
|
||||||
@ -314,13 +411,17 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
|
|||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "1.1"
|
lock-version = "1.1"
|
||||||
python-versions = "^3.6"
|
python-versions = "^3.6"
|
||||||
content-hash = "c10cf732636ae0ea2c57b2a5698505a78b3d396c1656a9cd23f3f86ac825c762"
|
content-hash = "d146005969ffef66c679fac3bac5aeb4e03b1ec2852e1afefdfe4087a5be789c"
|
||||||
|
|
||||||
[metadata.files]
|
[metadata.files]
|
||||||
alabaster = [
|
alabaster = [
|
||||||
{file = "alabaster-0.7.12-py2.py3-none-any.whl", hash = "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359"},
|
{file = "alabaster-0.7.12-py2.py3-none-any.whl", hash = "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359"},
|
||||||
{file = "alabaster-0.7.12.tar.gz", hash = "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"},
|
{file = "alabaster-0.7.12.tar.gz", hash = "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"},
|
||||||
]
|
]
|
||||||
|
async-generator = [
|
||||||
|
{file = "async_generator-1.10-py3-none-any.whl", hash = "sha256:01c7bf666359b4967d2cda0000cc2e4af16a0ae098cbffcb8472fb9e8ad6585b"},
|
||||||
|
{file = "async_generator-1.10.tar.gz", hash = "sha256:6ebb3d106c12920aaae42ccb6f787ef5eefdcdd166ea3d628fa8476abe712144"},
|
||||||
|
]
|
||||||
babel = [
|
babel = [
|
||||||
{file = "Babel-2.9.0-py2.py3-none-any.whl", hash = "sha256:9d35c22fcc79893c3ecc85ac4a56cde1ecf3f19c540bba0922308a6c06ca6fa5"},
|
{file = "Babel-2.9.0-py2.py3-none-any.whl", hash = "sha256:9d35c22fcc79893c3ecc85ac4a56cde1ecf3f19c540bba0922308a6c06ca6fa5"},
|
||||||
{file = "Babel-2.9.0.tar.gz", hash = "sha256:da031ab54472314f210b0adcff1588ee5d1d1d0ba4dbd07b94dba82bde791e05"},
|
{file = "Babel-2.9.0.tar.gz", hash = "sha256:da031ab54472314f210b0adcff1588ee5d1d1d0ba4dbd07b94dba82bde791e05"},
|
||||||
@ -341,10 +442,25 @@ colorama = [
|
|||||||
{file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"},
|
{file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"},
|
||||||
{file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"},
|
{file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"},
|
||||||
]
|
]
|
||||||
|
contextvars = [
|
||||||
|
{file = "contextvars-2.4.tar.gz", hash = "sha256:f38c908aaa59c14335eeea12abea5f443646216c4e29380d7bf34d2018e2c39e"},
|
||||||
|
]
|
||||||
docutils = [
|
docutils = [
|
||||||
{file = "docutils-0.16-py2.py3-none-any.whl", hash = "sha256:0c5b78adfbf7762415433f5515cd5c9e762339e23369dbe8000d84a4bf4ab3af"},
|
{file = "docutils-0.16-py2.py3-none-any.whl", hash = "sha256:0c5b78adfbf7762415433f5515cd5c9e762339e23369dbe8000d84a4bf4ab3af"},
|
||||||
{file = "docutils-0.16.tar.gz", hash = "sha256:c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc"},
|
{file = "docutils-0.16.tar.gz", hash = "sha256:c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc"},
|
||||||
]
|
]
|
||||||
|
h11 = [
|
||||||
|
{file = "h11-0.12.0-py3-none-any.whl", hash = "sha256:36a3cb8c0a032f56e2da7084577878a035d3b61d104230d4bd49c0c6b555a9c6"},
|
||||||
|
{file = "h11-0.12.0.tar.gz", hash = "sha256:47222cb6067e4a307d535814917cd98fd0a57b6788ce715755fa2b6c28b56042"},
|
||||||
|
]
|
||||||
|
httpcore = [
|
||||||
|
{file = "httpcore-0.13.3-py3-none-any.whl", hash = "sha256:ff614f0ef875b9e5fe0bdd459b31ea0eea282ff12dc82add83d68b3811ee94ad"},
|
||||||
|
{file = "httpcore-0.13.3.tar.gz", hash = "sha256:5d674b57a11275904d4fd0819ca02f960c538e4472533620f322fc7db1ea0edc"},
|
||||||
|
]
|
||||||
|
httpx = [
|
||||||
|
{file = "httpx-0.18.1-py3-none-any.whl", hash = "sha256:ad2e3db847be736edc4b272c4d5788790a7e5789ef132fc6b5fef8aeb9e9f6e0"},
|
||||||
|
{file = "httpx-0.18.1.tar.gz", hash = "sha256:0a2651dd2b9d7662c70d12ada5c290abcf57373b9633515fe4baa9f62566086f"},
|
||||||
|
]
|
||||||
idna = [
|
idna = [
|
||||||
{file = "idna-2.10-py2.py3-none-any.whl", hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"},
|
{file = "idna-2.10-py2.py3-none-any.whl", hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"},
|
||||||
{file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"},
|
{file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"},
|
||||||
@ -353,6 +469,23 @@ imagesize = [
|
|||||||
{file = "imagesize-1.2.0-py2.py3-none-any.whl", hash = "sha256:6965f19a6a2039c7d48bca7dba2473069ff854c36ae6f19d2cde309d998228a1"},
|
{file = "imagesize-1.2.0-py2.py3-none-any.whl", hash = "sha256:6965f19a6a2039c7d48bca7dba2473069ff854c36ae6f19d2cde309d998228a1"},
|
||||||
{file = "imagesize-1.2.0.tar.gz", hash = "sha256:b1f6b5a4eab1f73479a50fb79fcf729514a900c341d8503d62a62dbc4127a2b1"},
|
{file = "imagesize-1.2.0.tar.gz", hash = "sha256:b1f6b5a4eab1f73479a50fb79fcf729514a900c341d8503d62a62dbc4127a2b1"},
|
||||||
]
|
]
|
||||||
|
immutables = [
|
||||||
|
{file = "immutables-0.15-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:6728f4392e3e8e64b593a5a0cd910a1278f07f879795517e09f308daed138631"},
|
||||||
|
{file = "immutables-0.15-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:f0836cd3bdc37c8a77b192bbe5f41dbcc3ce654db048ebbba89bdfe6db7a1c7a"},
|
||||||
|
{file = "immutables-0.15-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:8703d8abfd8687932f2a05f38e7de270c3a6ca3bd1c1efb3c938656b3f2f985a"},
|
||||||
|
{file = "immutables-0.15-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:b8ad986f9b532c026f19585289384b0769188fcb68b37c7f0bd0df9092a6ca54"},
|
||||||
|
{file = "immutables-0.15-cp36-cp36m-win_amd64.whl", hash = "sha256:6f117d9206165b9dab8fd81c5129db757d1a044953f438654236ed9a7a4224ae"},
|
||||||
|
{file = "immutables-0.15-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:b75ade826920c4e490b1bb14cf967ac14e61eb7c5562161c5d7337d61962c226"},
|
||||||
|
{file = "immutables-0.15-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:b7e13c061785e34f73c4f659861f1b3e4a5fd918e4395c84b21c4e3d449ebe27"},
|
||||||
|
{file = "immutables-0.15-cp37-cp37m-win_amd64.whl", hash = "sha256:3035849accee4f4e510ed7c94366a40e0f5fef9069fbe04a35f4787b13610a4a"},
|
||||||
|
{file = "immutables-0.15-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:b04fa69174e0c8f815f9c55f2a43fc9e5a68452fab459a08e904a74e8471639f"},
|
||||||
|
{file = "immutables-0.15-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:141c2e9ea515a3a815007a429f0b47a578ebeb42c831edaec882a245a35fffca"},
|
||||||
|
{file = "immutables-0.15-cp38-cp38-win_amd64.whl", hash = "sha256:cbe8c64640637faa5535d539421b293327f119c31507c33ca880bd4f16035eb6"},
|
||||||
|
{file = "immutables-0.15-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:a0a4e4417d5ef4812d7f99470cd39347b58cb927365dd2b8da9161040d260db0"},
|
||||||
|
{file = "immutables-0.15-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:3b15c08c71c59e5b7c2470ef949d49ff9f4263bb77f488422eaa157da84d6999"},
|
||||||
|
{file = "immutables-0.15-cp39-cp39-win_amd64.whl", hash = "sha256:2283a93c151566e6830aee0e5bee55fc273455503b43aa004356b50f9182092b"},
|
||||||
|
{file = "immutables-0.15.tar.gz", hash = "sha256:3713ab1ebbb6946b7ce1387bb9d1d7f5e09c45add58c2a2ee65f963c171e746b"},
|
||||||
|
]
|
||||||
jinja2 = [
|
jinja2 = [
|
||||||
{file = "Jinja2-2.11.2-py2.py3-none-any.whl", hash = "sha256:f0a4641d3cf955324a89c04f3d94663aa4d638abe8f733ecd3582848e1c37035"},
|
{file = "Jinja2-2.11.2-py2.py3-none-any.whl", hash = "sha256:f0a4641d3cf955324a89c04f3d94663aa4d638abe8f733ecd3582848e1c37035"},
|
||||||
{file = "Jinja2-2.11.2.tar.gz", hash = "sha256:89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0"},
|
{file = "Jinja2-2.11.2.tar.gz", hash = "sha256:89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0"},
|
||||||
@ -376,20 +509,39 @@ markupsafe = [
|
|||||||
{file = "MarkupSafe-1.1.1-cp35-cp35m-win32.whl", hash = "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1"},
|
{file = "MarkupSafe-1.1.1-cp35-cp35m-win32.whl", hash = "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1"},
|
||||||
{file = "MarkupSafe-1.1.1-cp35-cp35m-win_amd64.whl", hash = "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d"},
|
{file = "MarkupSafe-1.1.1-cp35-cp35m-win_amd64.whl", hash = "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d"},
|
||||||
{file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_6_intel.whl", hash = "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff"},
|
{file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_6_intel.whl", hash = "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d53bc011414228441014aa71dbec320c66468c1030aae3a6e29778a3382d96e5"},
|
||||||
{file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473"},
|
{file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473"},
|
||||||
{file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e"},
|
{file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:3b8a6499709d29c2e2399569d96719a1b21dcd94410a586a18526b143ec8470f"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:84dee80c15f1b560d55bcfe6d47b27d070b4681c699c572af2e3c7cc90a3b8e0"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:b1dba4527182c95a0db8b6060cc98ac49b9e2f5e64320e2b56e47cb2831978c7"},
|
||||||
{file = "MarkupSafe-1.1.1-cp36-cp36m-win32.whl", hash = "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66"},
|
{file = "MarkupSafe-1.1.1-cp36-cp36m-win32.whl", hash = "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66"},
|
||||||
{file = "MarkupSafe-1.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5"},
|
{file = "MarkupSafe-1.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5"},
|
||||||
{file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_6_intel.whl", hash = "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d"},
|
{file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_6_intel.whl", hash = "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:bf5aa3cbcfdf57fa2ee9cd1822c862ef23037f5c832ad09cfea57fa846dec193"},
|
||||||
{file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e"},
|
{file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e"},
|
||||||
{file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6"},
|
{file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:6fffc775d90dcc9aed1b89219549b329a9250d918fd0b8fa8d93d154918422e1"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:a6a744282b7718a2a62d2ed9d993cad6f5f585605ad352c11de459f4108df0a1"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:195d7d2c4fbb0ee8139a6cf67194f3973a6b3042d742ebe0a9ed36d8b6f0c07f"},
|
||||||
{file = "MarkupSafe-1.1.1-cp37-cp37m-win32.whl", hash = "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2"},
|
{file = "MarkupSafe-1.1.1-cp37-cp37m-win32.whl", hash = "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2"},
|
||||||
{file = "MarkupSafe-1.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c"},
|
{file = "MarkupSafe-1.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c"},
|
||||||
{file = "MarkupSafe-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15"},
|
{file = "MarkupSafe-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15"},
|
||||||
{file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2"},
|
{file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2"},
|
||||||
{file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42"},
|
{file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:acf08ac40292838b3cbbb06cfe9b2cb9ec78fce8baca31ddb87aaac2e2dc3bc2"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:d9be0ba6c527163cbed5e0857c451fcd092ce83947944d6c14bc95441203f032"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:caabedc8323f1e93231b52fc32bdcde6db817623d33e100708d9a68e1f53b26b"},
|
||||||
{file = "MarkupSafe-1.1.1-cp38-cp38-win32.whl", hash = "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b"},
|
{file = "MarkupSafe-1.1.1-cp38-cp38-win32.whl", hash = "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b"},
|
||||||
{file = "MarkupSafe-1.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be"},
|
{file = "MarkupSafe-1.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d73a845f227b0bfe8a7455ee623525ee656a9e2e749e4742706d80a6065d5e2c"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:98bae9582248d6cf62321dcb52aaf5d9adf0bad3b40582925ef7c7f0ed85fceb"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:2beec1e0de6924ea551859edb9e7679da6e4870d32cb766240ce17e0a0ba2014"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:7fed13866cf14bba33e7176717346713881f56d9d2bcebab207f7a036f41b850"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:6f1e273a344928347c1290119b493a1f0303c52f5a5eae5f16d74f48c15d4a85"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:feb7b34d6325451ef96bc0e36e1a6c0c1c64bc1fbec4b854f4529e51887b1621"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp39-cp39-win32.whl", hash = "sha256:22c178a091fc6630d0d045bdb5992d2dfe14e3259760e713c490da5323866c39"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:b7d644ddb4dbd407d31ffb699f1d140bc35478da613b441c582aeb7c43838dd8"},
|
||||||
{file = "MarkupSafe-1.1.1.tar.gz", hash = "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b"},
|
{file = "MarkupSafe-1.1.1.tar.gz", hash = "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b"},
|
||||||
]
|
]
|
||||||
packaging = [
|
packaging = [
|
||||||
@ -412,10 +564,18 @@ requests = [
|
|||||||
{file = "requests-2.25.0-py2.py3-none-any.whl", hash = "sha256:e786fa28d8c9154e6a4de5d46a1d921b8749f8b74e28bde23768e5e16eece998"},
|
{file = "requests-2.25.0-py2.py3-none-any.whl", hash = "sha256:e786fa28d8c9154e6a4de5d46a1d921b8749f8b74e28bde23768e5e16eece998"},
|
||||||
{file = "requests-2.25.0.tar.gz", hash = "sha256:7f1a0b932f4a60a1a65caa4263921bb7d9ee911957e0ae4a23a6dd08185ad5f8"},
|
{file = "requests-2.25.0.tar.gz", hash = "sha256:7f1a0b932f4a60a1a65caa4263921bb7d9ee911957e0ae4a23a6dd08185ad5f8"},
|
||||||
]
|
]
|
||||||
|
rfc3986 = [
|
||||||
|
{file = "rfc3986-1.5.0-py2.py3-none-any.whl", hash = "sha256:a86d6e1f5b1dc238b218b012df0aa79409667bb209e58da56d0b94704e712a97"},
|
||||||
|
{file = "rfc3986-1.5.0.tar.gz", hash = "sha256:270aaf10d87d0d4e095063c65bf3ddbc6ee3d0b226328ce21e036f946e421835"},
|
||||||
|
]
|
||||||
six = [
|
six = [
|
||||||
{file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"},
|
{file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"},
|
||||||
{file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"},
|
{file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"},
|
||||||
]
|
]
|
||||||
|
sniffio = [
|
||||||
|
{file = "sniffio-1.2.0-py3-none-any.whl", hash = "sha256:471b71698eac1c2112a40ce2752bb2f4a4814c22a54a3eed3676bc0f5ca9f663"},
|
||||||
|
{file = "sniffio-1.2.0.tar.gz", hash = "sha256:c4666eecec1d3f50960c6bdf61ab7bc350648da6c126e3cf6898d8cd4ddcd3de"},
|
||||||
|
]
|
||||||
snowballstemmer = [
|
snowballstemmer = [
|
||||||
{file = "snowballstemmer-2.0.0-py2.py3-none-any.whl", hash = "sha256:209f257d7533fdb3cb73bdbd24f436239ca3b2fa67d56f6ff88e86be08cc5ef0"},
|
{file = "snowballstemmer-2.0.0-py2.py3-none-any.whl", hash = "sha256:209f257d7533fdb3cb73bdbd24f436239ca3b2fa67d56f6ff88e86be08cc5ef0"},
|
||||||
{file = "snowballstemmer-2.0.0.tar.gz", hash = "sha256:df3bac3df4c2c01363f3dd2cfa78cce2840a79b9f1c2d2de9ce8d31683992f52"},
|
{file = "snowballstemmer-2.0.0.tar.gz", hash = "sha256:df3bac3df4c2c01363f3dd2cfa78cce2840a79b9f1c2d2de9ce8d31683992f52"},
|
||||||
|
@ -9,6 +9,7 @@ python = "^3.6"
|
|||||||
sphinx = "^3.2.1"
|
sphinx = "^3.2.1"
|
||||||
sphinx-rtd-theme = "^0.5.0"
|
sphinx-rtd-theme = "^0.5.0"
|
||||||
sphinx-intl = "^2.0.1"
|
sphinx-intl = "^2.0.1"
|
||||||
|
httpx = "^0.18.1"
|
||||||
|
|
||||||
[tool.poetry.dev-dependencies]
|
[tool.poetry.dev-dependencies]
|
||||||
|
|
||||||
|
@ -41,79 +41,83 @@ When developing, it's convenient to run OnionShare from a terminal and add the `
|
|||||||
This prints a lot of helpful messages to the terminal, such as when certain objects are initialized, when events occur (like buttons clicked, settings saved or reloaded), and other debug info. For example::
|
This prints a lot of helpful messages to the terminal, such as when certain objects are initialized, when events occur (like buttons clicked, settings saved or reloaded), and other debug info. For example::
|
||||||
|
|
||||||
$ poetry run onionshare-cli -v ~/Documents/roms/nes/Q-bert\ \(USA\).nes
|
$ poetry run onionshare-cli -v ~/Documents/roms/nes/Q-bert\ \(USA\).nes
|
||||||
OnionShare 2.3 | https://onionshare.org/
|
╭───────────────────────────────────────────╮
|
||||||
|
│ * ▄▄█████▄▄ * │
|
||||||
|
│ ▄████▀▀▀████▄ * │
|
||||||
|
│ ▀▀█▀ ▀██▄ │
|
||||||
|
│ * ▄█▄ ▀██▄ │
|
||||||
|
│ ▄█████▄ ███ -+- │
|
||||||
|
│ ███ ▀█████▀ │
|
||||||
|
│ ▀██▄ ▀█▀ │
|
||||||
|
│ * ▀██▄ ▄█▄▄ * │
|
||||||
|
│ * ▀████▄▄▄████▀ │
|
||||||
|
│ ▀▀█████▀▀ │
|
||||||
|
│ -+- * │
|
||||||
|
│ ▄▀▄ ▄▀▀ █ │
|
||||||
|
│ █ █ ▀ ▀▄ █ │
|
||||||
|
│ █ █ █▀▄ █ ▄▀▄ █▀▄ ▀▄ █▀▄ ▄▀▄ █▄▀ ▄█▄ │
|
||||||
|
│ ▀▄▀ █ █ █ ▀▄▀ █ █ ▄▄▀ █ █ ▀▄█ █ ▀▄▄ │
|
||||||
|
│ │
|
||||||
|
│ v2.3.2.dev1 │
|
||||||
|
│ │
|
||||||
|
│ https://onionshare.org/ │
|
||||||
|
╰───────────────────────────────────────────╯
|
||||||
|
|
||||||
@@@@@@@@@
|
[May 10 2021 18:24:02] Settings.__init__
|
||||||
@@@@@@@@@@@@@@@@@@@
|
[May 10 2021 18:24:02] Settings.load
|
||||||
@@@@@@@@@@@@@@@@@@@@@@@@@
|
[May 10 2021 18:24:02] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json
|
||||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
[May 10 2021 18:24:02] Common.get_resource_path: filename=wordlist.txt
|
||||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ___ _
|
[May 10 2021 18:24:02] Common.get_resource_path: filename=wordlist.txt, path=/home/user/code/onionshare/cli/onionshare_cli/resources/wordlist.txt
|
||||||
@@@@@@ @@@@@@@@@@@@@ / _ \ (_)
|
[May 10 2021 18:24:02] ModeSettings.load: creating /home/user/.config/onionshare/persistent/tattered-handgun-stress.json
|
||||||
@@@@ @ @@@@@@@@@@@ | | | |_ __ _ ___ _ __
|
[May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.title = None
|
||||||
@@@@@@@@ @@@@@@@@@@ | | | | '_ \| |/ _ \| '_ \
|
[May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.public = False
|
||||||
@@@@@@@@@@@@ @@@@@@@@@@ \ \_/ / | | | | (_) | | | |
|
[May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.autostart_timer = 0
|
||||||
@@@@@@@@@@@@@@@@ @@@@@@@@@ \___/|_| |_|_|\___/|_| |_|
|
[May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.autostop_timer = 0
|
||||||
@@@@@@@@@ @@@@@@@@@@@@@@@@ _____ _
|
[May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.legacy = False
|
||||||
@@@@@@@@@@ @@@@@@@@@@@@ / ___| |
|
[May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.client_auth = False
|
||||||
@@@@@@@@@@ @@@@@@@@ \ `--.| |__ __ _ _ __ ___
|
[May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: share.autostop_sharing = True
|
||||||
@@@@@@@@@@@ @ @@@@ `--. \ '_ \ / _` | '__/ _ \
|
[May 10 2021 18:24:02] Web.__init__: is_gui=False, mode=share
|
||||||
@@@@@@@@@@@@@ @@@@@@ /\__/ / | | | (_| | | | __/
|
[May 10 2021 18:24:02] Common.get_resource_path: filename=static
|
||||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \____/|_| |_|\__,_|_| \___|
|
[May 10 2021 18:24:02] Common.get_resource_path: filename=static, path=/home/user/code/onionshare/cli/onionshare_cli/resources/static
|
||||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
[May 10 2021 18:24:02] Common.get_resource_path: filename=templates
|
||||||
@@@@@@@@@@@@@@@@@@@@@@@@@
|
[May 10 2021 18:24:02] Common.get_resource_path: filename=templates, path=/home/user/code/onionshare/cli/onionshare_cli/resources/templates
|
||||||
@@@@@@@@@@@@@@@@@@@
|
[May 10 2021 18:24:02] Web.generate_static_url_path: new static_url_path is /static_4yxrx2mzi5uzkblklpzd46mwke
|
||||||
@@@@@@@@@
|
[May 10 2021 18:24:02] ShareModeWeb.init
|
||||||
|
[May 10 2021 18:24:02] Onion.__init__
|
||||||
[Nov 10 2020 20:50:35] Settings.__init__
|
[May 10 2021 18:24:02] Onion.connect
|
||||||
[Nov 10 2020 20:50:35] Settings.load
|
[May 10 2021 18:24:02] Settings.__init__
|
||||||
[Nov 10 2020 20:50:35] Common.get_resource_path: filename=wordlist.txt
|
[May 10 2021 18:24:02] Settings.load
|
||||||
[Nov 10 2020 20:50:35] Common.get_resource_path: filename=wordlist.txt, path=/home/user/code/onionshare/cli/onionshare_cli/resources/wordlist.txt
|
[May 10 2021 18:24:02] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json
|
||||||
[Nov 10 2020 20:50:35] ModeSettings.load: creating /home/user/.config/onionshare/persistent/abstain-reprogram-elevate.json
|
[May 10 2021 18:24:02] Onion.connect: tor_data_directory_name=/home/user/.config/onionshare/tmp/tmpw6u0nz8l
|
||||||
[Nov 10 2020 20:50:35] ModeSettings.set: updating abstain-reprogram-elevate: general.public = False
|
[May 10 2021 18:24:02] Common.get_resource_path: filename=torrc_template
|
||||||
[Nov 10 2020 20:50:35] ModeSettings.set: updating abstain-reprogram-elevate: general.autostart_timer = 0
|
[May 10 2021 18:24:02] Common.get_resource_path: filename=torrc_template, path=/home/user/code/onionshare/cli/onionshare_cli/resources/torrc_template
|
||||||
[Nov 10 2020 20:50:35] ModeSettings.set: updating abstain-reprogram-elevate: general.autostop_timer = 0
|
|
||||||
[Nov 10 2020 20:50:35] ModeSettings.set: updating abstain-reprogram-elevate: general.legacy = False
|
|
||||||
[Nov 10 2020 20:50:35] ModeSettings.set: updating abstain-reprogram-elevate: general.client_auth = False
|
|
||||||
[Nov 10 2020 20:50:35] ModeSettings.set: updating abstain-reprogram-elevate: share.autostop_sharing = True
|
|
||||||
[Nov 10 2020 20:50:35] Web.__init__: is_gui=False, mode=share
|
|
||||||
[Nov 10 2020 20:50:35] Common.get_resource_path: filename=static
|
|
||||||
[Nov 10 2020 20:50:35] Common.get_resource_path: filename=static, path=/home/user/code/onionshare/cli/onionshare_cli/resources/static
|
|
||||||
[Nov 10 2020 20:50:35] Common.get_resource_path: filename=templates
|
|
||||||
[Nov 10 2020 20:50:35] Common.get_resource_path: filename=templates, path=/home/user/code/onionshare/cli/onionshare_cli/resources/templates
|
|
||||||
[Nov 10 2020 20:50:35] Web.generate_static_url_path: new static_url_path is /static_qa7rlyxwnfodczrriv3tj5yeoq
|
|
||||||
[Nov 10 2020 20:50:35] ShareModeWeb.init
|
|
||||||
[Nov 10 2020 20:50:35] Onion.__init__
|
|
||||||
[Nov 10 2020 20:50:35] Onion.connect
|
|
||||||
[Nov 10 2020 20:50:35] Settings.__init__
|
|
||||||
[Nov 10 2020 20:50:35] Settings.load
|
|
||||||
[Nov 10 2020 20:50:35] Onion.connect: tor_data_directory_name=/home/user/.config/onionshare/tmp/tmpz53ztq3m
|
|
||||||
[Nov 10 2020 20:50:35] Common.get_resource_path: filename=torrc_template
|
|
||||||
[Nov 10 2020 20:50:35] Common.get_resource_path: filename=torrc_template, path=/home/user/code/onionshare/cli/onionshare_cli/resources/torrc_template
|
|
||||||
Connecting to the Tor network: 100% - Done
|
Connecting to the Tor network: 100% - Done
|
||||||
[Nov 10 2020 20:50:42] Onion.connect: Connected to tor 0.4.4.5
|
[May 10 2021 18:24:10] Onion.connect: Connected to tor 0.4.5.7
|
||||||
[Nov 10 2020 20:50:42] Settings.load
|
[May 10 2021 18:24:10] Settings.load
|
||||||
[Nov 10 2020 20:50:42] Web.generate_password: saved_password=None
|
[May 10 2021 18:24:10] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json
|
||||||
[Nov 10 2020 20:50:42] Common.get_resource_path: filename=wordlist.txt
|
[May 10 2021 18:24:10] Web.generate_password: saved_password=None
|
||||||
[Nov 10 2020 20:50:42] Common.get_resource_path: filename=wordlist.txt, path=/home/user/code/onionshare/cli/onionshare_cli/resources/wordlist.txt
|
[May 10 2021 18:24:10] Common.get_resource_path: filename=wordlist.txt
|
||||||
[Nov 10 2020 20:50:42] Web.generate_password: built random password: "pedometer-grower"
|
[May 10 2021 18:24:10] Common.get_resource_path: filename=wordlist.txt, path=/home/user/code/onionshare/cli/onionshare_cli/resources/wordlist.txt
|
||||||
[Nov 10 2020 20:50:42] OnionShare.__init__
|
[May 10 2021 18:24:10] Web.generate_password: built random password: "tipping-colonize"
|
||||||
[Nov 10 2020 20:50:42] OnionShare.start_onion_service
|
[May 10 2021 18:24:10] OnionShare.__init__
|
||||||
[Nov 10 2020 20:50:42] Onion.start_onion_service: port=17610
|
[May 10 2021 18:24:10] OnionShare.start_onion_service
|
||||||
[Nov 10 2020 20:50:42] Onion.start_onion_service: key_type=NEW, key_content=ED25519-V3
|
[May 10 2021 18:24:10] Onion.start_onion_service: port=17645
|
||||||
[Nov 10 2020 20:50:46] ModeSettings.set: updating abstain-reprogram-elevate: general.service_id = x5duatuhpiwfzb23iwpjanalvtxdhoj43ria44s53ryy5diywvbu24ad
|
[May 10 2021 18:24:10] Onion.start_onion_service: key_type=NEW, key_content=ED25519-V3
|
||||||
[Nov 10 2020 20:50:46] ModeSettings.set: updating abstain-reprogram-elevate: onion.private_key = uIXJzY+88tGSAXAjQxdwkzb2L7jHv467RIX1WDieVkFEZjEA7st2p/6uVCM4KM3L9PdShTPScuUv2IEbVQammA==
|
[May 10 2021 18:24:14] ModeSettings.set: updating tattered-handgun-stress: general.service_id = omxjamkys6diqxov7lxru2upromdprxjuq3czdhen6hrshzd4sll2iyd
|
||||||
|
[May 10 2021 18:24:14] ModeSettings.set: updating tattered-handgun-stress: onion.private_key = 6PhomJCjlWicmOyAAe0wnQoEM3vcyHBivrRGDy0hzm900fW5ITDJ6iv2+tluLoueYj81MhmnYeTOHDm8UGOfhg==
|
||||||
Compressing files.
|
Compressing files.
|
||||||
[Nov 10 2020 20:50:46] ShareModeWeb.init
|
[May 10 2021 18:24:14] ShareModeWeb.init
|
||||||
[Nov 10 2020 20:50:46] ShareModeWeb.set_file_info_custom
|
[May 10 2021 18:24:14] ShareModeWeb.set_file_info_custom
|
||||||
[Nov 10 2020 20:50:46] ShareModeWeb.build_zipfile_list
|
[May 10 2021 18:24:14] ShareModeWeb.build_zipfile_list
|
||||||
[Nov 10 2020 20:50:46] Web.start: port=17610
|
[May 10 2021 18:24:14] Web.start: port=17645
|
||||||
* Running on http://127.0.0.1:17610/ (Press CTRL+C to quit)
|
* Running on http://127.0.0.1:17645/ (Press CTRL+C to quit)
|
||||||
|
|
||||||
Give this address to the recipient:
|
Give this address to the recipient:
|
||||||
http://onionshare:pedometer-grower@x5duatuhpiwfzb23iwpjanalvtxdhoj43ria44s53ryy5diywvbu24ad.onion
|
http://onionshare:tipping-colonize@omxjamkys6diqxov7lxru2upromdprxjuq3czdhen6hrshzd4sll2iyd.onion
|
||||||
|
|
||||||
Press Ctrl+C to stop the server
|
Press Ctrl+C to stop the server
|
||||||
|
|
||||||
|
|
||||||
You can add your own debug messages by running the ``Common.log`` method from ``onionshare/common.py``. For example::
|
You can add your own debug messages by running the ``Common.log`` method from ``onionshare/common.py``. For example::
|
||||||
|
|
||||||
common.log('OnionShareGui', 'start_server', 'I ran here')
|
common.log('OnionShareGui', 'start_server', 'I ran here')
|
||||||
@ -127,37 +131,36 @@ Tor is slow, and it's often convenient to skip starting onion services altogethe
|
|||||||
You can do this with the ``--local-only`` flag. For example::
|
You can do this with the ``--local-only`` flag. For example::
|
||||||
|
|
||||||
$ poetry run onionshare-cli --local-only --receive
|
$ poetry run onionshare-cli --local-only --receive
|
||||||
OnionShare 2.3 | https://onionshare.org/
|
╭───────────────────────────────────────────╮
|
||||||
|
│ * ▄▄█████▄▄ * │
|
||||||
|
│ ▄████▀▀▀████▄ * │
|
||||||
|
│ ▀▀█▀ ▀██▄ │
|
||||||
|
│ * ▄█▄ ▀██▄ │
|
||||||
|
│ ▄█████▄ ███ -+- │
|
||||||
|
│ ███ ▀█████▀ │
|
||||||
|
│ ▀██▄ ▀█▀ │
|
||||||
|
│ * ▀██▄ ▄█▄▄ * │
|
||||||
|
│ * ▀████▄▄▄████▀ │
|
||||||
|
│ ▀▀█████▀▀ │
|
||||||
|
│ -+- * │
|
||||||
|
│ ▄▀▄ ▄▀▀ █ │
|
||||||
|
│ █ █ ▀ ▀▄ █ │
|
||||||
|
│ █ █ █▀▄ █ ▄▀▄ █▀▄ ▀▄ █▀▄ ▄▀▄ █▄▀ ▄█▄ │
|
||||||
|
│ ▀▄▀ █ █ █ ▀▄▀ █ █ ▄▄▀ █ █ ▀▄█ █ ▀▄▄ │
|
||||||
|
│ │
|
||||||
|
│ v2.3.2.dev1 │
|
||||||
|
│ │
|
||||||
|
│ https://onionshare.org/ │
|
||||||
|
╰───────────────────────────────────────────╯
|
||||||
|
|
||||||
@@@@@@@@@
|
* Running on http://127.0.0.1:17617/ (Press CTRL+C to quit)
|
||||||
@@@@@@@@@@@@@@@@@@@
|
|
||||||
@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
||||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
||||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ___ _
|
|
||||||
@@@@@@ @@@@@@@@@@@@@ / _ \ (_)
|
|
||||||
@@@@ @ @@@@@@@@@@@ | | | |_ __ _ ___ _ __
|
|
||||||
@@@@@@@@ @@@@@@@@@@ | | | | '_ \| |/ _ \| '_ \
|
|
||||||
@@@@@@@@@@@@ @@@@@@@@@@ \ \_/ / | | | | (_) | | | |
|
|
||||||
@@@@@@@@@@@@@@@@ @@@@@@@@@ \___/|_| |_|_|\___/|_| |_|
|
|
||||||
@@@@@@@@@ @@@@@@@@@@@@@@@@ _____ _
|
|
||||||
@@@@@@@@@@ @@@@@@@@@@@@ / ___| |
|
|
||||||
@@@@@@@@@@ @@@@@@@@ \ `--.| |__ __ _ _ __ ___
|
|
||||||
@@@@@@@@@@@ @ @@@@ `--. \ '_ \ / _` | '__/ _ \
|
|
||||||
@@@@@@@@@@@@@ @@@@@@ /\__/ / | | | (_| | | | __/
|
|
||||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \____/|_| |_|\__,_|_| \___|
|
|
||||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
||||||
@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
||||||
@@@@@@@@@@@@@@@@@@@
|
|
||||||
@@@@@@@@@
|
|
||||||
|
|
||||||
* Running on http://127.0.0.1:17635/ (Press CTRL+C to quit)
|
|
||||||
|
|
||||||
Files sent to you appear in this folder: /home/user/OnionShare
|
Files sent to you appear in this folder: /home/user/OnionShare
|
||||||
|
|
||||||
Warning: Receive mode lets people upload files to your computer. Some files can potentially take control of your computer if you open them. Only open things from people you trust, or if you know what you are doing.
|
Warning: Receive mode lets people upload files to your computer. Some files can potentially take control of your computer if you open them. Only open things from people you trust, or if you know what you are doing.
|
||||||
|
|
||||||
Give this address to the sender:
|
Give this address to the sender:
|
||||||
http://onionshare:train-system@127.0.0.1:17635
|
http://onionshare:ended-blah@127.0.0.1:17617
|
||||||
|
|
||||||
Press Ctrl+C to stop the server
|
Press Ctrl+C to stop the server
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user