شیئر لنکس
چیٹ کے ہیڈر میں Share دوسرے لوگوں کے لیے لنکس بناتا ہے تاکہ وہ کردار سے بات کر سکیں، مثلاً:
- ایک دوست جانچتا ہے کہ AI آپ کے انداز میں کتنا اچھا لکھتا ہے؛
- ایک دوست اپنی ہی ایک نقل سے بات کرتا ہے۔
لنک https://<your host>/s/<name> کی شکل کا ہوتا ہے۔ وزیٹرز صرف چیٹ دیکھتے ہیں: نہ سائڈبار، نہ ترتیبات، نہ نوٹس، نہ میڈیا کی تفصیلات، نہ پرامپٹ، نہ ٹوکن کا استعمال، نہ دوسری چیٹس۔
اختیارات
| اختیار | ڈیفالٹ | |
|---|---|---|
| کون کھول سکتا ہے | یہ کمپیوٹر | ایڈیٹر میں ہی Wi‑Fi اور Internet سوئچز (نیچے) |
| لنک | بے ترتیب | alex جیسا نام چنیں |
| ڈسپلے نام | کردار کا نام | ایکسپورٹ کے اصل نام نہیں دکھائے جاتے |
| PIN | کوئی نہیں | 4–64 حروف، Argon2id ہیش کے طور پر محفوظ۔ ✨ 6 ہندسے بناتا ہے |
| گفتگوئیں | نجی | Private: ہر وزیٹر کی الگ گفتگو۔ Shared room: سب ایک گفتگو میں |
| وزیٹرز ایکسپورٹ پڑھ سکتے ہیں | کچھ نہیں | کچھ نہیں، آخری N پیغامات، یا سب کچھ |
| حدود | 50 وزیٹرز، ہر ایک کے لیے 200 جوابات | ہر جواب آپ کی کلید پر ٹوکن خرچ کرتا ہے۔ 0 = بے حد |
| وزیٹرز پہلے لکھوا سکتے ہیں | بند | 💬 بٹن دکھاتا ہے: کردار وزیٹر کے پیغام کے بغیر پیغام بھیجتا ہے |
| وزیٹرز جواب دوبارہ لکھوا سکتے ہیں | بند | ↻ بٹن دکھاتا ہے: کردار کا آخری جواب دوبارہ لکھا جاتا ہے۔ دونوں حد کے ایک جواب کا حصہ ہیں، اور بند ہوں تو سرور انہیں رد کرتا ہے |
| ختم ہوتا ہے / فعال | کبھی نہیں / فعال | لنک حذف کیے بغیر روکیں یا ختم کریں |
| Telegram گروپ | بند | Telegram سے جواب دیں |
آپ Share ڈائیلاگ میں ہر وزیٹر کی گفتگو Read کر سکتے ہیں، اور کسی گفتگو کو End کر کے منسوخ کر سکتے ہیں۔ ہر وزیٹر دکھاتا ہے کہ اس نے آخری بار کس پتے سے لکھا۔ گفتگو ختم کرتے وقت Also block اس پتے کو لنک سے باہر رکھتا ہے (ابتدائی صفحہ، نئی گفتگوئیں، اور پہلے سے کھلی ہوئی)، جب تک آپ Unblock نہ کریں۔ مشترکہ نیٹ ورک پر ایک پتا کئی لوگوں کا ہو سکتا ہے۔ پتے صرف آپ کے کمپیوٹر پر لنک کے ساتھ محفوظ ہوتے ہیں۔
کردار کس سے بات کرتا ہے
وزیٹر آپ نہیں ہیں۔ جب Mia آپ کا لنک کھولتی ہے تو کردار جانتا ہے کہ Mia لکھ رہی ہے، لنک آپ کی طرف سے آیا ہے، اور تاریخ اور آپ کے نوٹس آپ کے بارے میں ہیں، Mia کے بارے میں نہیں: وہ اس سے ایک نئے شخص کی طرح ملتا ہے۔ نام کے بغیر وہ صرف ایک مہمان ہے۔
| کردار کیا دیکھتا ہے | |
|---|---|
| نجی لنک | وزیٹر کے ساتھ ایک گفتگو، اس نام کے تحت جو اس نے دیا (یا "Guest") |
| مشترکہ روم | ایک گروپ چیٹ: ہر پیغام پر بھیجنے والے کا نام ہوتا ہے، اور لوگ کسی بھی وقت شامل ہو سکتے ہیں |
| آپ کی ایکسپورٹ کی تاریخ | آپ کے پیغامات آپ کے نام سے، پھر وزیٹر کے، تاکہ کبھی خلط ملط نہ ہوں |
ہر گفتگو کا سسٹم پرامپٹ طے شدہ ہوتا ہے، تاکہ فراہم کنندگان اسے cache کرتے رہیں: وزیٹر کا نام گفتگو کے شروع ہونے پر طے ہوتا ہے، اور روم میں نام پیغامات کے ساتھ سفر کرتے ہیں۔ جو وزیٹر خود کو کردار یا آپ جیسا نام دے، وہ مثلاً "Alex (guest)" بن جاتا ہے، اور روم میں دوسری "Ann" کو "Ann 2" کہا جاتا ہے۔
دعوت نامے
| لنک | کیا کھلتا ہے |
|---|---|
/s/alex | ابتدائی صفحہ |
/s/alex#pin=2468 | فوراً چیٹ۔ PIN # کے بعد ہے، اس لیے وہ کبھی سرور یا لاگز تک نہیں پہنچتا |
/s/alex#name=Greg&pin=2468 | وہی، وزیٹر کے نام کے ساتھ (?name=Greg بھی کام کرتا ہے) |
لنک کا QR بٹن ہر اس پتے کے لیے کوڈ کھولتا ہے جو کام کرتا ہو، تاکہ فون سے اسکین ہو سکے۔ محفوظ کرنے کے فوراً بعد Copy invite with PIN PIN کے ساتھ لنک کاپی کرتا ہے۔
دوسرے آلات پر لنکس کھولیں
سرور پر لنکس بس سرور کا پتا استعمال کرتے ہیں۔ ڈیسک ٹاپ ایپ (اور 127.0.0.1 پر rooftop) صرف آپ کے کمپیوٹر پر چلتی ہے، اس لیے Share ڈائیلاگ اور لنک ایڈیٹر میں دو سوئچز ہیں۔ ہر ایک بتاتا ہے کہ وہ Live، Connecting یا Not working ہے، اور ایڈیٹر فوراً وہ پتا دکھاتا ہے جو لنک کا ہوگا۔
┌──────────── آپ کا کمپیوٹر ────────────┐
Wi‑Fi پر فون ─────▶│ :8737 صرف وزیٹر کے صفحات │
│ │
کوئی بھی ──▶ name.iroof.top ══ ایک باہر جانے والا WebSocket ══▶ ایپ │
│ │
│ 127.0.0.1 مالک کا UI، سیٹنگز، API │
└───────────────────────────────────────┘| Wi‑Fi اور مقامی نیٹ ورک | انٹرنیٹ | |
|---|---|---|
| پتا | http://<your IP>:8737/s/<name> | https://<name>.iroof.top/s/<name> |
| کون | اسی نیٹ ورک کے آلات | کوئی بھی، جب تک ایپ چل رہی ہو |
| کیسے | ایک دوسرا listener جو صرف وزیٹر کے صفحات دیتا ہے | ریلے تک ایک باہر جانے والا WebSocket، انٹرنیٹ پر کچھ بھی سن نہیں رہا |
| آپ کا ڈیٹا | آپ کے کمپیوٹر پر رہتا ہے | آپ کے کمپیوٹر پر رہتا ہے، مگر وزیٹر کے پیغامات ریلے سے گزرتے ہیں |
- Wi‑Fi پورٹ ری اسٹارٹ کے بعد بھی وہی رہتا ہے، اس لیے چھپے ہوئے QR کوڈ کام کرتے رہتے ہیں۔ macOS پر اگر فائر وال پوچھے تو آنے والے کنکشنز کی اجازت دیں۔
- انٹرنیٹ کا نام آپ خود چنتے اور بدلتے ہیں (پتے کے ساتھ Change)۔ ریلے صرف
/s/…،/api/s/…اور صفحے کے اثاثے آگے بھیجتا ہے، دونوں سمتوں میں cookies ہٹاتا ہے، اور ایپ بند ہونے پر "offline" صفحہ دکھاتا ہے۔ - iroof.top کی بجائے اپنا ریلے چاہتے ہیں؟ دیکھیں Relay hub۔
- Offline mode انٹرنیٹ سوئچ کو بند اور لاک کر دیتا ہے، Wi‑Fi چلتا رہتا ہے۔ ریلے کیا دیکھ سکتا ہے: آف لائن اور رازداری۔
تحفظ
| محافظ | حد |
|---|---|
| ایک IP سے غلط PINs | 5 کے بعد: 1 منٹ کے لیے لاک، پھر 2، 4… زیادہ سے زیادہ 1 گھنٹہ |
| ایک لنک پر، تمام IPs سے غلط PINs | 15 منٹ میں 20: 5 منٹ کے لیے لاک، ہر بار دوگنا، 24 گھنٹے تک |
| فی وزیٹر پیغامات | 30 فی منٹ، 10 جوابات فی منٹ |
| نئی گفتگوئیں | فی گھنٹہ فی IP 20 |
گنتیاں میموری میں رہتی ہیں۔ 6 ہندسوں کا PIN کسی معقول وقت میں اندازے سے نہیں ملتا۔ کسی ریورس پراکسی کے پیچھے ROOFTOP_TRUST_PROXY=true سیٹ کریں، تاکہ گنتیاں اصل کلائنٹ IPs دیکھیں۔
وزیٹر کے سیشن /s/<name>/<token> میں 26 حروف کا بے ترتیب ٹوکن استعمال کرتے ہیں، جسے براؤزر یاد رکھتا ہے، اور Referrer-Policy: no-referrer اسے لیک ہونے سے بچاتی ہے۔ وزیٹرز صرف وہی میڈیا لوڈ کر سکتے ہیں جو انہیں دیکھنے کی اجازت ہو۔