فان سورس | Fun Source
153 subscribers
1 photo
1 file
13 links
🤪 این کانال صرفاً جهت بررسی ایرادات سورس های پابلیک و مورد تمسخر قرار دادن مشکلات آنها برای اینکه دوباره تکرار نشن !

🤣 مخصوصاً اونایی که ادعا دارند باید سورس هاشونو برای ما ارسال کنند تا محک بزنن سطح خودشونو ! قوی و مرد باش 💪

#نه_به_کپی_پیست @AsirRam
Download Telegram
📰 عنوان سورس : سورس سلف پایتون پایروگرام

👨‍💻 نویسنده سورس : @ThePurea


⚠️ اشتباهات و نکات کلی :


بابا دم این دوستمون گرم که هیچ اعتقادی به استفاده از حلقه هایی همچون for نداره 🤣 مثلاً شما تابع hert رو ببینید کاری به غلط های املاییش ندارم ولی آخه لعنتی این چرا اینطوریه !


حالا لعنتی چرا هرچی اومده دم دستت رو ایمپورت all کردی !! اینطوری باعث میشی اسکریپتت چیزای الکی و بیخود هم لود بکنه

اسم گذاری های متغیر هاش کاملا غیر اصولی هست و هرچی دلش خواسته گذاشته بنظرم

آخ آخ رایج ترین اشتباه همین هست که ایشون موقع ارسال درخواست های همزمان اومده وسط توابع Asynchronously خودش از Thread استفاده کرده !! این دو تا کاملا در جنگ با هم هستن !! بهتر بود از کتابخانه های async استفاده بکنه برای خیلی چیزا مثلاً بجای requests از aiohttp میشد استفاده کرد


من که این قسمت رو نفهمیدم چی چی شد 🤣 شما فهمیدین بگید : ( اصلا متود run ورودی نمیگیره حتی اگر خطایی هم نده اشتباهه اینکار )

app.run(print ('self is run...'))


انصافاً من حال کردم که انقدر متغیر cr رو تعریف کرده برای معرفی خودش نویسنده سورس 😁

👇 اگر شما هم نکته دیگه ای یافتید تو کامنت ها بگید که خوشحال میشیم
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍21
📰 عنوان سورس : ابزار برای آی‌پی آدرس ها

👨‍💻 نویسنده سورس : @Amirprx3


⚠️ اشتباهات و نکات کلی :

خب ایشون داخل لاین 39 اومدن از کد زیر استفاده کردن :) خب متاسفانه باید یکی به ارقام آخر استفاده میکردند چون وقتی از range استفاده می‌کنید از range(1,10) یعنی از عدد ۱ تا خود عدد ۹ ! پس ۱۰ رو شامل نمیشه و پورت ها هم از ۱ شروع میشن ( غیر نرمالش ) تا 65535 پس پورت آخر رو بررسی نمی‌کنی ! و درست شده کد :

for port in range(1,65535 + 1)

و اینکه داش ! اینجا آخر سورست هست دیگه تموم شده چرا پس تو تابع اسکن اومدی از sys.exit استفاده کردی ؟

چه حیف که از ipv6 پشتیبانی نمی‌کنی ☹️ و هیچ خطایی هم هندل نکردی براش که طرف بفهمه اشتباه نمیزنه ! و تو داری اشتباه می‌کنی


ماشاالله از exceptions ها هم فقط ValueError رو میشناسن و کاری به بقیه اشون ندارن 😂 خیلی روی خطا هات ضعیف کار کردی بنظرم میشد بهترش کرد و به کاربر اطلاع دقیق تری رو ارائه بدی !

و خب در آخر اینکه از ماژول whois مناسبی باید بگم که استفاده نکردن چون نواقصی دارند و میتونه به پروژه آسیب هایی رو بزنه 👍


و در کل کارات رو خیلی طولانی کردی میتونستی از تردینگ استفاده بکنی که همزمان همه پورت ها رو بررسی بکنی نه اینکه تک تک ! 🥱


👇 اگر شما هم نکته دیگه ای یافتید تو کامنت ها بگید که خوشحال میشیم
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32🔥1
📰 عنوان سورس : سورس سلف پایتون به همراه هلپر

👨‍💻 نویسنده سورس : @Amo_Anon


⚠️ اشتباهات و نکات کلی :

اول چیزی که دیدم این بود که ایشون ایندنت ها رو رعایت نکرده و بعضاً جاهایی دیده میشه که حتی از ۱ دونه وایت اسپیس استفاده شده حتی ! ( مثل خط self.py:49 ) بعضی از IDle ها به این چیزا گیر میدن موقع اجرا و همچنین زیادی تمیز ننوشتن ☹️ و اگر میکس بشن این خطا رو میگیرید معمولاً ( PEP 8 ) :

IndentationError: unindent does not match any outer indentation level

و خب بعضی جا ها دیده میشه که از یک تابع مکرراً صدا زده شده مثل get_me در لاین های self.py:438 و self.py:451 و خب یکم غیر منطقی هست که بخاطر هر آپدیت جدید بخاید یوزر آیدی سلف رو اینطوری دریافت بکنید 🙄 حقیقتا ممکنه این همه درخواست اضافی احتمال دیلیت شدن اکانت شما رو افزایش بده ! خود تلگرام رسمی هم یکبار موقع ورود این کار رو میکنه و تمام ! تا وقتی از تلگرامتون نرید بیرون از همون یه اطلاعاتی که از شما داره استفاده می‌کنه

🤣 خط های ۶۶ تا ۶۸ که سم خالص هستن ! چرا باید بیای این کارو بکنی آخه 🤣 مگر اینکه کدتو از یه جایی برداشته باشی...

def gpt(text):
false=False
true=True
null=None


و خب یه جای سم دیگه اینکه وقتی میشد اطلاعات رو از تابع اولت یا دومت گرفت چرا دو بار درخواست های مشابه فرستادی 😂😐 ( خط های self.py:84 و self.py:85 )

Amo_Anon = await slf.get_me()
g = await slf(functions.users.GetFullUserRequest("me"))


داش قربونت بشم شما تابع query رو تعریف کردی به این شکل :

def query(x):
global db,conn
return conn.execute(f"SELECT {x} FROM SELF").fetchall()[0][0]

پس این کد لعنتی دیگه چی میگه توی خط self.py:100 😑 تابع هایی که تعریف می‌کنید رو یادتون میره استفاده کنید ؟
mode = json.loads(conn.execute(f"SELECT mode FROM SELF").fetchall()[0][0])

# mode = query('mode')


این سم رو دیگه توی لاین self.py:89 نمی‌پذیرم 😂 چرا باید تایپ رو تغییر بدی که بخای مساوی با یه رشته 'None' بزاری ؟ اینطوری قسمتی از سی پیو رو الکی اشغال کردی با این کارت
str(about.about) == 'None'

# about.about == None


در خط self.py:154 اومدن اسامی رو گرفتن تا لیستی ازشون درست بکنن و بفرستن ... نکته مهمش اینجاست که اگر طرف توی اسمش یه کد HTML بود اونوقت تلتون نمیتونه بفرستش پس به ارور میخوری 🤣 باید بعضی چیزای داخل تگ های HTML مثل & < > رو براشون معادل بنویسی یا حذفشون کنی !

t += f"<a href=tg://user?id={id}>{i} : {info.first_name}</a>\n "


حالا کاری با این اسم گذاری های متغیر هاش ندارم اما میشه توضیح بدی متغیر n که صفر هست همیشه خدا ، کجا استفادت شده ؟! ( فکر کنه بنده خدا می‌خواسته هر بار n += 1 انجام بده که یادش رفته 😂 )

a,n= "",0
if len(answer) >= 1:
for i in range(0,int(len(answer))):
a+= f"{n} : {answer[i]} -> {javab[i]} \n"
await event.edit("<b> Answer List : </b>\n {a}",parse_mode='html')
else:
await event.edit("Answer list is empty ")


داش عالی نواختی ! فایل رو دو بار آپلود کردی چرا توی لاین self.py:313 و self.py:314 🤣 ساقیت کی بوده مشتی ؟

m=await slf.upload_file(photo) # بار اول

await slf(functions.photos.UploadProfilePhotoRequest(fallback=True,file=await slf.upload_file(m))) # بار دوم

خط self.py:426 هم دستت درد نکنه که parse_mode = html رو به عنوان پارامتر ندادی بهش و اشتباهه 🙏

await event.edit(f"<u>{text}</u>")

یه قسمت اکشن هم معذرت 😂 پارامتر های ورودی های اونا میزارن درصد پیشرفت کار هست و باید تکرارشون میکردی برای جذاب شدن و تو بدون اینکه بدونی اصلا چی هست به همشون پارامتر progress = 1 دادی رفته 🫤 ( خط های self.py:457 تا self.py:467 )


بعد که فایل helper.py رو باز کردم و دیدم چند تا تابع نوشتی برای اینکه متن خروجی چی باشه همونجا سورسو بستم و پشمام ریخت که یه تابع بنویسی صرفاً یه تکست عادی رو ریترن کنه 🤣

👇 اگر شما هم نکته دیگه ای یافتید تو کامنت ها بگید که خوشحال میشیم
Please open Telegram to view this post
VIEW IN TELEGRAM
212👍9🔥3
👍 https://t.me/Sourrce_kade/4787

🔥 https://t.me/Sourrce_kade/2295

❤️ https://t.me/Sourrce_kade/4819


با ری اکشنت بگو بعدی کدوم باشه 😉 خیلی هاتون سورس فرستادید ولی اکثراً پایتون هستن لطفاً صبر کنید به زبان های دیگه هم بپردازیم ! و اما سورس هایی که مال خودتون هستن رو بفرستید لطفاً



https://t.me/Sourrce_kade/4952

و چون این سورس خودمه پس شما انتقادش کنید 😁 هر دلیل منطقی بیارید میپذیرم و ازتون ممنون هم میشم
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥54
📰 عنوان سورس : سورس ربات فیلم و سریال

👨‍💻 نویسنده سورس : @ofteraccount


⚠️ اشتباهات و نکات کلی :

توی لاین 15 اومدن یه پارامتر دادن به عنوان $datas :) داش لطفاً چیزی رو نمیدونی الکی نزن ☹️
اولا باید بصورت کلید و مقدار باشه آرایه ای که میدی چون قراره دیتا رو پست کنی به HTTP API

لاین 91 یه اشتباه رایج بین همتون هست اینکه lastname اپشنال هست ممکنه باشه ممکنه نباشه !
و اگر کاربر فامیلی نداشته باشه اینجا خطا میگرید که این پراپرتی وجود ندارد در آبجکت شما
این اشتباه در خط های 92 و 94 و جاهای متعددی تکرار شده روی نسخه 8+ پی اچ پی همه اینا خطا میدن دیگه نه وارنینگ

لاین 106 خیلی بامزه هست طرف اومده فایل سایز رو از بایت به کیلوبایت تبدیل کنه 😂
مشکل اینه که ایشون حتی نمیتونن 1024 بایت یه کیلو بایت هست 🤣


لاین 134 قابل تحسین هست که میخاستن توکن ربات شما رو بدزده 😕

لاین 328 و جاهای دیگه راحت میشه از باگ injection sql استفاده کرد 🫡


داش امیدوارم بدونی متغیر به چه درد میخوره ، آخه کی هزار بار درخواست مشابه میزنه به دیتابیس برای گرفتن یه چیز ؟؟ 😂

$file_name = mysqli_fetch_assoc(mysqli_query($connect,"SELECT*FROM data WHERE code = '$text'"))['file_name'];
$file_id = mysqli_fetch_assoc(mysqli_query($connect,"SELECT*FROM data WHERE code = '$text'"))['file_id'];
$title = mysqli_fetch_assoc(mysqli_query($connect,"SELECT*FROM data WHERE code = '$text'"))['title'];
$uploadDate = mysqli_fetch_assoc(mysqli_query($connect,"SELECT*FROM data WHERE code = '$text'"))['date'];
$yuklang = mysqli_fetch_assoc(mysqli_query($connect,"SELECT*FROM data WHERE code = '$text'"))['yuklang'];

از لاین 636 نگاه کنید میبینید که اره هنوز با بررسی یه شرط داخل یه حلقه اشناییت نداره ! 😶

برداشته تک تک درخواست زده و مقدارشو ریخته تو متغیر و چک کرده که پیام رفته یا نه !

داش اذیت نکن خودتو انصافاً
# line 636

if($ok==true){
}else{

فکر کنم دوستمون هنوز مبحث مربوط به بولین false رو نخونده همه کاراشو با true کرده 🤣

داداش میگم تو مطمئنی همون true هم یاد گرفتی ؟ من احساس می‌کنم کپی کردی
چون هنوز نمیدونی true != "true" 😂
# line 723

if(is_numeric($text) == "true"){

اوه من یادمه از وقتی تلگرام اومد دیلیت مسیج داشته داش یکم داکیومنت تلگرامو بخون

نمیدونم چی تو فکرش بوده ولی این کدو زده

# line 692

bot('editMessageText',[
'chat_id'=>$cid2,
'message_id'=>$mid2,
'text'=>"",
'parse_mode'=>'html',
]);

قشنگ از خط 699 میشه فهمید کپی پیستر بوده نه کدنویس :)

$ping = $end_time - $start_time;

یادش رفته متغیر $start_time هم کپی کنه تو سورس 😂


همین که از elseif استفاده نکرده و خیلی جاها exit استفاده کرده
میشه فهمید که یه کد نویس این سورسو نزده والا شرمنده ولی کار یه ادیتور بوده :(

توی لاین های 41 و 42 و ... شما شاهد چیزای جدیدی هستید 🤣 ساخت آرایه با کلید های عددی رشته ای !
# line 41 & 42

$array['inline_keyboard']["$i"][0]['text'] = " ". $name;
$array['inline_keyboard']["$i"][0]['url'] = "https://t.me/$url";

باید بهتون بگم که اینجا نباید $i رو به رشته تبدیل میکردن چون اینطوری دیگه لیست ساخته نمیشه
و یک آرایه با کلید و مقدار ساخته میشه ( توی پایتون به اصطلاح گفته میشه دیکشنری )

👇 اگر شما هم نکته دیگه ای یافتید تو کامنت ها بگید که خوشحال میشیم
Please open Telegram to view this post
VIEW IN TELEGRAM
210👍31
برسی سورس سلف پایتون ( ریویو شکلات 🍫 )

👀 یه مشکلی که تو خیلی از کد های تازه کار ها یا حتی کسایی که سنیور ترن میبینم اینه که استراکچر پروژه اشون سالم نیست.
آیا رعایت استاندارد های PEP اجباریه؟ نه. آیا رعایت نکردنش کار جالبیه؟ بازم نه

یکی از مسائلی که مهمه بدونید اینه که پروژه پایتونی شما باید از چند بخش تشکیل بشه:
🛠 اسکریپت اصلی

📦 دپندنسی های پروژه (requirements.txt)

🖼 فولدر فایل های ثابت (assets/static)

🔌 پلاگین و ماژول ها (modules/plugins)


البته خیلی بهتره که از یه Project Manager مثل chocolate, Poetry استفاده کنید.

فرض کنیم شما حوصله استفاده از پراجکت منیجر نداشتید! آیا درسته که مثل لاین ۱۷ این حرکتو بزنید؟

os.system('pip install --upgrade pip && pip install -U telethon && pip install psutil && pip ins ...

قطعا نه! واسه‌ مشکل dependency ها ۳ تا راه حل دارید.
1⃣استفاده از venv
2⃣ ساخت کاستوم اینستالر
3⃣ استفاده از Makefile
مورد سوم و اول رو بیشتر پیشنهاد میکنم.
(اگه نیازه به اموزش Makefile بگید)
اینا بهتون کمک میکنن مطمئن شید که پروژه به نحو احسنت اجرا میشه.

😀 سورس سورس متوسطی ای هست. سعیم بیشتر بر این بود کسی که داره اینو میخونه یه چیزی یاد بگیره

🔣 نمره ای که من میدم ؟ 4⃣ از 0️⃣1⃣

اینو یادتون باشه، دنیای کامپیوتر دنیای «همه چیز دان ها» نیست، بلکه دنیای «کنجکاو ها» ست. از خودتون خجالت نکشید. کد های خنده دار و مسخره بنویسید. یه سوال رو برای بار هزارم سرچ کنید. در کل هر اتفاقی که میوفته مسیر یادگیری رو متوقف نکنید. کامپیوتر هارو درک کنید تا بتونید باهاشون صحبت کنید. این تنها راه موفقیت تو این مسیره.
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥85👍5👏1
سورس بعدی کدوم باشه ؟ 😁 کسانی که فرستادن و فراموش کردم ازشون عذر خواهی می‌کنم 🙏 و اگر امکانش هست سورس های متعلق به خودتون رو ارسال بکنید!

👇یا اینکه کامنت بکنید ☹️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6😎2🤔1
سلام شکلاتم 🍫

😁 قراره این سورس رو برسی کنیم : https://t.me/Sourrce_kade/4976

اولا تو لاین ۹ و ۱۰ به جای :
if os.path.isdir(path):
os.mkdir....

بهتر بود از :
os.makedirs(path, exists_ok=True) 

استفاده میکرد

دوما، واسه پترن regex ای که زده جالب نیست

هدفش اینه مسیجی که ران رو اولش داره بگیره و اینو زده
filters.regex("run ")

این اگه ران وسط تکست هم باشه میگیردش
درستش اینه :
filters.regex(r"^run\s")

از لحاظ PEP که ریده. بعد کد زدن از Black استفاده کنید لطفا

و لاین 226 :
asyncio.speed(0.5)

جانم ؟ 😂😂😭

نمره ای که میدم 2️⃣ از 0️⃣1️⃣
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22🔥1
📰 عنوان سورس : سورس ربات ریموت و پنل

👨‍💻 نویسنده سورس : @ipv_Ali


⚠️ اشتباهات و نکات کلی :

def apis():
with open('apis.txt' , 'r') as api:
apir = api.read()
return random.choice(apir.split('\n')).split()

این دوستمون اینجاشو خیلی بد سوتی داده 😂 اومدن با اسپلیت کردن بر اساس نیو لاین جدا سازی انجام دادن و محتوا فایل رو بصورت خط به خط جدا و به لیست تبدیل کردن و به این دقت نکردن که آقا جان! شما همیشه خط آخر این فایلت خالیه !! پس امکانش هست خروجی این تابع اصلا یه رشته خالی باشه :/ و در ادامه خطا هایی رخ میدن...

🧐 بزارید با یه مثال ساده بهتون بگم منظورمون ، کافیه این رو اجرا بکنید و ببینید لیست های خالی که می‌گیرید رو ( مشکل یک نیولاین خالی هست ) :

import random

apir = '''4f40ae9fbdfb5ebdbef07caaaae 18987
'''

for i in range(10):
print(random.choice(apir.split('\n')).split())

🤨 و خب اینجا مشخص میکنه که اصلا از ماژول glob بلد نبودن استفاده بکنن ! و اومدن لیست همه فایل ها و پوشه های درون یه پوشه رو گرفتن و انتها اسم اون ها رو بررسی کردن !

def accounts():
accs = set()
for i in os.listdir('accounts'):
if '.session' in i:
accs.add(i.split('.')[0])
return list(accs)

😁 و اما کد درست تر و بهتری که میتونستن بنویسن :

from glob import glob

accounts = glob('accounts/*.session')

توی خط 34 انصافاً داش به جوونیت رحم کن 😂 ریجکس نوشتی که اون پترن مچ شده ازش متن رو بگیری این مسخره بازی هات دیگه چیه در آوردی بعد از ریجکس نویسی اشتباهت :

chat = message.text.replace('/run ' , '').replace('run ', '')

به به توی خط 169 و 183 و ... هم که ایندنت گذاری هاتو کاملا رعایت کردی مثل همون قبلی که گفتیم 😂

و خب توی هندل کردن خطا ها خیلی ضعیف عمل کرده مثلاً توی خط 229 ایشون اومده همچنین کدی رو نوشته :

os.unlink('files/p.png')

اگر فرض کنیم دو نفر همزمان به این استپ برسن و قرار باشه فلان چیز حذف بشه ! بار اول که حذف بشه بار دوم خطا میخورید که فایل وجود نداره چون همزمان داشتن این کارو میکردن و پروسه درکل طولانی هست پس ممکنه این اتفاق بیوفته دور از انتظار اصلا نیست ! 🙄


👇 اگر شما هم نکته دیگه ای یافتید تو کامنت ها بگید که خوشحال میشیم
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍31
😞 ببخشید بابت کم شدن فعالیتمون ! یک سری مشکل برام پیش اومده و خب سورس جدیدی هم کسی نفرستاده برای نقد کردن و قول یه تابستون خفن رو میدم بهتون 😉 ممنون از تمام کسانی که همراهمون میمونن...


✓ توی تابستون قراره خودم سورس بزارم

✓ و همچنین آموزش و نکات ریز هر زبان رو مورد بررسی قرار می‌دیم

✓ از همه مهم تر اینکه چالش هایی رو همراه با جوایز قرار میدیم
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥1
📰 عنوان سورس : سلف ساز

👨‍💻 نویسنده سورس : @Mohammad777777777777777777


⚠️ اشتباهات و نکات کلی :

در خط bot.py:473 از شرط زیر برای چک کردن API HASH استفاده کردن که هم اشتباه و هم ضعیف هست ! اولاً طول اون ثابت هست چون هش هست و 32 کاراکتر داره و دوما فقط از اعداد و حروف a تا f استفاده میشه در ساختارش که میشد این هم لحاظ کنن

if len(text) < 30:

در بین خط bot.py:599 الی bot.py:604 متاسفانه بجای اینکه از Exception های از قبل تعریف شده استفاده کنن برای مدیریت بهتر اومد بصورت شرطی این رو بررسی کردن ، اما خب این مشکل نیست 😂 مشکل اساسی اینجاست که توی این خط ها اصلا به همچین ارور هایی شما بر نخواهی خورد ، کاملا الکی گذاشته شده 🤣

                if "PHONE_NUMBER_INVALID" in error_msg:
await event.respond(ERROR_MESSAGES["PHONE_NUMBER_INVALID"])
elif "PHONE_NUMBER_BANNED" in error_msg:
await event.respond(ERROR_MESSAGES["PHONE_NUMBER_BANNED"])


در خط bug_report.py:538 ایشون اومدن همچین خروجی رو دادن که ممکنه یک دیکشنری یا یک NoneType باشه ! بعد خروجی که برای تابع تعریف کردن فقط دیکشنری هست 😂 از این قبیل سوتی ها کم ندارن

async def _get_bug_details(self, bug_id: int) -> Dict:
return dict(zip(columns, row)) if row else None


احساس می‌کنم درگیری شدیدی با خودشون داشتن 🤣 داش یه بار سر به داکیومنت تلتون میزدی می‌فهمیدی Exception FloodWaitError خودش پراپرتی برای گرفتن ثانیه داره...

# کد الکی و دارای اشتباه ، ممکنه فلود هر جور باشه متنش و انواع و اقسامی داره
wait_time = int(str(e).split(" ")[-2]) + 1

# کد درست که خود تلتون ثانیه و زمان فلود رو گزارش میکنه

wait_time = e.seconds


😅 بخاطر مشغله ای که دارم نتونستم پلاگین هاشو و خیلی جاهای دیگه اشو ریز و دقیق بررسی کنم اگر شما بررسی کردید خوشحال میشم بهم بگید :)


👇 اگر شما هم نکته دیگه ای یافتید تو کامنت ها بگید که خوشحال میشیم
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍31
📰 عنوان سورس : تگ گیر

👨‍💻 نویسنده سورس : @TG_MORDOR


⚠️ اشتباهات و نکات کلی :


یه سندرومی هم به اسم سندروم متغیر نامتغیر 😂 اینطوری هست که اسم متغیر ها رو جوری میزاری که کسی رغبت نکنه بخونه کداتو اینم یکی از هموناست....


مثلاً توی خط 401 الی 403 کد زیر تعریف شده ، داداشمون انقدر حرفه ای هست که Exception از هر نوعی باشه بزور ثانیه فلود ویت میخاد ازش استخراج بکنه لعنتی 😂 داش شاید یه اتفاق دیگه افتاد بزور میخاد از متغیر e2 پراپرتی seconds رو صدا بزنی ؟

    except Exception as e2:
x1.error(f"Error sending FloodWait message: {e2}")
await asyncio.sleep(e2.seconds)


داش ببین کار خوبی می‌کنی که چنل میخای بسازی و روش بندازی یوزرنیم رو ... ولی خبر داری که ۲۰ دقیقه محدودیت میخوره ؟ و اگر طرف روی هر ۱ دقیقه یکبار چک کردن گذاشته باشه زمان‌بندی رو ... تو ۲۰ تا چنل ساختی توی همین ۲۰ دقیقه تا اینکه قفل بشه یوزرنیم 😂 و محدودیت ساخت چنل میگیری و یوزرنیم از دستت میپره ( خط 327 الی 336 )

                av1 = await c1(CreateChannelRequest(
title=f"کانال {ag1}",
about="کانال جدید",
broadcast=True
))
aw1 = av1.chats[0].id
await c1(UpdateUsernameRequest(
channel=aw1,
username=ag1[1:]
))


در خط 39 افکار قدیمی و پوسیده ای می‌بینیم 😁 اولا یوزرنیم ها دیگه 5 رقمی به بالا نیستن ! @bold دوما این فیلتر رعایت نکردی که یوزرنیم با حروف فقط میتونه شروع بشه ! نه عدد ! شما گذاشتی هم عدد هم حروف و هم اندر لاین 😂😐

    return bool(re.match(r'^[A-Za-z0-9_]{5,}$', e1))


🙄 بعد یه چیز بنظرم غلط اینجا هست اینکه ایشون توابع اش و کارایی که میکنه بصورت Asynchronously هست بعد به خودش زحمت نداده موقع کار بار فایل ها هم از همین قوانین اسینک تبعیت بکنه و خب این اشتباه ... لاین 41 تا 56 این رو میتونید ببینید و اما کد درست تری که باید این بخش میزدن به شکل زیر باید میبود

async def d2():
async with aiofiles.open(b1,'r') as f1:
return json.loads(await f1.read())

async def d3(g1):
async with aiofiles.open(b1,'w') as f1:
await f1.write(json.dumps(g1))


لطفاً به این موضوع دقت ویژه داشته باشید و تکلیفتون رو با خودتون روشن کنید ! یا همه چیزو بصورت async بنویسید یا اصلا سمتش نیاید 😕


👇 اگر شما هم نکته دیگه ای یافتید تو کامنت ها بگید که خوشحال میشیم
Please open Telegram to view this post
VIEW IN TELEGRAM
👍421
سلام و درود مجدد 😁

چند وقت پیش من یه فریمورک برای هندل کردن اکانت های فروت کرفت و نوشتن اسکریپت هاش توی زبان پی اچ پی 👨‍💻 نوشتم


و خب داخل 📱 گیت هابم اونو آپلود کردم و واقعاً چیز خفنی شده ! به روز ترین کد ها و کامل ترین implement هست !


📱 https://github.com/Tak-Pesar/FruitCraft


و همچنین چند مثال برای نوشتن اسکریپت نوشتم و امیدوارم به دردتون بخوره و حداقل خودتون استفاده کنید


⭐️ اگر به دردتون هم نخورد یه ستاره بزنید دلمون خوش بشه 😄 واقعاً کد نویسی تمیزی شده ! میگی نه ؟ ببینش


❤️ اگر سوالی و باگی هم بود گزارش بدید رفع میشه
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥11