توسعه دادن OnionShare
همکاری کردن
OnionShare یک تیم Keybase باز دارد تا درباره پروژه بحث کند، سؤال بپرسد، ایدهها و طرحها را به اشتراک بگذارد و برنامههایی برای توسعه آینده بسازد. (همچنین این یک راه آسان برای ارسال پیامهای مستقیم کاملا رمزگذاری شده به دیگران در انجمن OnionShare، مانند آدرسهای OnionShare است.) برای استفاده از Keybase، برنامه Keybase را دانلود کنید، یک حساب کاربری ایجاد کنید و`به این تیم بپیوندید <https://keybase.io/team/team/`_. در برنامه، به "تیم ها" بروید، روی "پیوستن به یک تیم" کلیک کنید و "onionshare" را تایپ کنید.
OnionShare همچنین یک «لیست پست ایمیلی <https://lists.riseup.net/www/subscribe/onionshare-dev>» برای توسعهدهندگان و طراحان دارد تا در مورد پروژه با یکدیگر صحبت کنند.
کد مشارکتی
کد منبع OnionShare در این مخزن گیت یافت میشود: https://github.com/onionshare/onionshare
اگر مایل به ارائه کد به OnionShare هستید، پیوستن به تیم Keybase و پرسیدن سوالاتی در مورد موضوعی که قصد کار روی آن را دارید، مفید خواهد بود. همچنین باید تمام 'مسائل باز <https://github.com/onionshare/onionshare/issues>_ در گیت هاب را بررسی کنید تا ببینید آیا موردی هست که مایل به حل آن باشید.
وقتی آمادهی مشارکت در کدزنی هستید، یک درخواست pull در مخزن گیتهاب باز کنید و بعد یکی از نگهدارندگان پروژه آن را بررسی میکند و احتمالاً سؤال میپرسد، درخواست تغییر میدهد، آن را رد میکند یا آن را با پروژه ادغام میکند.
شروع توسعه
OnionShare با زبان Python توسعه داده شده است. برای شروع، مخزن Git را در آدرس https://github.com/onionshare/onionshare/ کپی کنید و سپس برای یادگیری نحوه تنظیم محیط توسعه برای نسخه خط فرمان، به فایل cli/README.md و برای یادگیری نحوه تنظیم محیط توسعه برای نسخه گرافیکی، به فایل desktop/README.md مراجعه کنید.
این فایلها حاوی دستورالعملها و دستورات فنی لازم برای نصب وابستگیها برای پلتفرم شما و اجرای OnionShare از درخت منبع هستند.
نکات اشکالزدایی
حالت مفصل
هنگام توسعه، اجرا کردن OnionShare از طریق ترمینال و اضافه کردن پرچم --verbose (یا``-v``) به دستور، راحت است. این کار پیامهای مفید زیادی را در ترمینال چاپ میکند، مانند زمانی که برخی موارد خاص شروع میشوند، زمانی که رویدادها اتفاق میافتد (مانند کلیک شدن روی دکمهها، ذخیره یا بارگذاری مجدد تنظیمات) و سایر اطلاعات اشکالزدایی. به عنوان مثال:
$ poetry run onionshare-cli -v ~/Documents/roms/nes/Q-bert\ \(USA\).nes
╭───────────────────────────────────────────╮
│ * ▄▄█████▄▄ * │
│ ▄████▀▀▀████▄ * │
│ ▀▀█▀ ▀██▄ │
│ * ▄█▄ ▀██▄ │
│ ▄█████▄ ███ -+- │
│ ███ ▀█████▀ │
│ ▀██▄ ▀█▀ │
│ * ▀██▄ ▄█▄▄ * │
│ * ▀████▄▄▄████▀ │
│ ▀▀█████▀▀ │
│ -+- * │
│ ▄▀▄ ▄▀▀ █ │
│ █ █ ▀ ▀▄ █ │
│ █ █ █▀▄ █ ▄▀▄ █▀▄ ▀▄ █▀▄ ▄▀▄ █▄▀ ▄█▄ │
│ ▀▄▀ █ █ █ ▀▄▀ █ █ ▄▄▀ █ █ ▀▄█ █ ▀▄▄ │
│ │
│ v2.4.1 │
│ │
│ https://onionshare.org/ │
╰───────────────────────────────────────────╯
[Sep 09 2021 19:13:20] Settings.__init__
[Sep 09 2021 19:13:20] Settings.load
[Sep 09 2021 19:13:20] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json
[Sep 09 2021 19:13:20] Common.get_resource_path: filename=wordlist.txt
[Sep 09 2021 19:13:20] Common.get_resource_path: filename=wordlist.txt, path=/home/user/code/onionshare/cli/onionshare_cli/resources/wordlist.txt
[Sep 09 2021 19:13:20] ModeSettings.load: creating /home/user/.config/onionshare/persistent/polish-pushpin-hydrated.json
[Sep 09 2021 19:13:20] ModeSettings.set: updating polish-pushpin-hydrated: general.title = None
[Sep 09 2021 19:13:20] ModeSettings.set: updating polish-pushpin-hydrated: general.public = False
[Sep 09 2021 19:13:20] ModeSettings.set: updating polish-pushpin-hydrated: general.autostart_timer = 0
[Sep 09 2021 19:13:20] ModeSettings.set: updating polish-pushpin-hydrated: general.autostop_timer = 0
[Sep 09 2021 19:13:20] ModeSettings.set: updating polish-pushpin-hydrated: share.autostop_sharing = True
[Sep 09 2021 19:13:20] Web.__init__: is_gui=False, mode=share
[Sep 09 2021 19:13:20] Common.get_resource_path: filename=static
[Sep 09 2021 19:13:20] Common.get_resource_path: filename=static, path=/home/user/code/onionshare/cli/onionshare_cli/resources/static
[Sep 09 2021 19:13:20] Common.get_resource_path: filename=templates
[Sep 09 2021 19:13:20] Common.get_resource_path: filename=templates, path=/home/user/code/onionshare/cli/onionshare_cli/resources/templates
[Sep 09 2021 19:13:20] Web.generate_static_url_path: new static_url_path is /static_gvvq2hplxhs2cekk665kagei6m
[Sep 09 2021 19:13:20] ShareModeWeb.init
[Sep 09 2021 19:13:20] Onion.__init__
[Sep 09 2021 19:13:20] Onion.connect
[Sep 09 2021 19:13:20] Settings.__init__
[Sep 09 2021 19:13:20] Settings.load
[Sep 09 2021 19:13:20] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json
[Sep 09 2021 19:13:20] Onion.connect: tor_data_directory_name=/home/user/.config/onionshare/tmp/tmpf3akiouy
[Sep 09 2021 19:13:20] Common.get_resource_path: filename=torrc_template
[Sep 09 2021 19:13:20] 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
[Sep 09 2021 19:13:30] Onion.connect: Connected to tor 0.4.6.7
[Sep 09 2021 19:13:30] Settings.load
[Sep 09 2021 19:13:30] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json
[Sep 09 2021 19:13:30] OnionShare.__init__
[Sep 09 2021 19:13:30] OnionShare.start_onion_service
[Sep 09 2021 19:13:30] Onion.start_onion_service: port=17616
[Sep 09 2021 19:13:30] Onion.start_onion_service: key_type=NEW, key_content=ED25519-V3
[Sep 09 2021 19:13:35] ModeSettings.set: updating polish-pushpin-hydrated: general.service_id = vucwsdmjt7szoc6pel3puqoxobiepdsowmqaq7pm7dzhembtzr2capad
[Sep 09 2021 19:13:35] ModeSettings.set: updating polish-pushpin-hydrated: onion.private_key = +HfFALM4MtrNh59ibfMtRwDCIpfpWHIcNh3boahqrHh3TkLAyQvzKTm/y53KoYKSh0VU+m9DZY7DtZuCzkHkqQ==
[Sep 09 2021 19:13:35] ModeSettings.set: updating polish-pushpin-hydrated: onion.client_auth_priv_key = G24TSNLIJX7YZM6R7P24AIGRU4N56ZFL7ENZVIDIWUEWY66YS3EQ
[Sep 09 2021 19:13:35] ModeSettings.set: updating polish-pushpin-hydrated: onion.client_auth_pub_key = GDY2EPXSS7Q3ELQJFIX2VELTVZ3QEYIGWIZ26CEDQKZJ5Y7VKI3A
Compressing files.
[Sep 09 2021 19:13:35] ShareModeWeb.init
[Sep 09 2021 19:13:35] ShareModeWeb.set_file_info_custom
[Sep 09 2021 19:13:35] ShareModeWeb.build_zipfile_list
[Sep 09 2021 19:13:35] Web.start: port=17616
* Running on http://127.0.0.1:17616/ (Press CTRL+C to quit)
Give this address and private key to the recipient:
http://vucwsdmjt7szoc6pel3puqoxobiepdsowmqaq7pm7dzhembtzr2capad.onion
Private key: G24TSNLIJX7YZM6R7P24AIGRU4N56ZFL7ENZVIDIWUEWY66YS3EQ
Press Ctrl+C to stop the server
شما میتوانید پیامهای اشکالزدایی خودتان را با اجرای متد Common.log از onionshare/common.py اضافه کنید. برای مثال:
common.log('OnionShareGui', 'start_server', 'I ran here')
این میتواند هنگام یادگیری زنجیره رویدادهایی که هنگام استفاده از OnionShare رخ میدهد یا مقدار متغیرهای خاص قبل و بعد از دستکاری آنها مفید باشد.
فقط محلی
سرعت Tor کند است، و اغلب راحتتر است که در طول توسعه، از شروع سرویسهای onion صرف نظر کنید. میتوانید این کار را با پرچم --local-only انجام دهید. به عنوان مثال:
$ poetry run onionshare-cli --local-only --receive
╭───────────────────────────────────────────╮
│ * ▄▄█████▄▄ * │
│ ▄████▀▀▀████▄ * │
│ ▀▀█▀ ▀██▄ │
│ * ▄█▄ ▀██▄ │
│ ▄█████▄ ███ -+- │
│ ███ ▀█████▀ │
│ ▀██▄ ▀█▀ │
│ * ▀██▄ ▄█▄▄ * │
│ * ▀████▄▄▄████▀ │
│ ▀▀█████▀▀ │
│ -+- * │
│ ▄▀▄ ▄▀▀ █ │
│ █ █ ▀ ▀▄ █ │
│ █ █ █▀▄ █ ▄▀▄ █▀▄ ▀▄ █▀▄ ▄▀▄ █▄▀ ▄█▄ │
│ ▀▄▀ █ █ █ ▀▄▀ █ █ ▄▄▀ █ █ ▀▄█ █ ▀▄▄ │
│ │
│ v2.4.1 │
│ │
│ https://onionshare.org/ │
╰───────────────────────────────────────────╯
* Running on http://127.0.0.1:17641/ (Press CTRL+C to quit)
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.
Give this address and private key to the sender:
http://127.0.0.1:17641
Private key: E2GOT5LTUTP3OAMRCRXO4GSH6VKJEUOXZQUC336SRKAHTTT5OVSA
Press Ctrl+C to stop the server
در این حالت، شما آدرس اینترنتی http://127.0.0.1:17641 را به جای استفاده از مرورگر Tor، در یک مرورگر وب معمولی مانند Firefox وارد میکنید. کلید خصوصی در حالت فقط محلی در واقع مورد نیاز نیست، بنابراین میتوانید آن را نادیده بگیرید.
ترجمههای مشارکتی
با ترجمهی OnionShare در Hosted Weblate، به آسانتر شدن استفاده از آن و آشناتر و دلنشینتر شدن آن برای افراد کمک کنید. همیشه "OnionShare" را با حروف لاتین بنویسید و در صورت نیاز از "OnionShare (localname)" استفاده کنید.
برای کمک به ترجمه، یک حساب کاربری Hosted Weblate ایجاد کنید و شروع به مشارکت کنید.
پیشنهاداتی برای رشتههای اصلی انگلیسی
گاهی اوقات رشتههای انگلیسی اصلی اشتباه هستند، یا بین کاربرد و مستندات مطابقت ندارند.
با اضافه کردن @kingu به کامنت Weblate خود، یا باز کردن یک مشکل در GitHub یا درخواست pull، بهبودهای رشته منبع را ثبت کنید. مورد دوم تضمین میکند که همه توسعهدهندگان در سطح بالا پیشنهاد را میبینند و میتوانند رشته را از طریق فرآیندهای معمول بررسی کد تغییر دهند.
وضعیت ترجمه ها
این وضعیت فعلی ترجمه است. اگر می خواهید ترجمه ای را به زبانی که هنوز شروع نشده است شروع کنید، لطفاً به لیست پست الکترونیکی بنویسید: onionshare-dev@lists.riseup.net