BinaryONe commited on
Commit
0b8a548
·
1 Parent(s): 6028c68

Changes in Database

Browse files
FileStream/Database/database.py CHANGED
@@ -132,7 +132,7 @@ class Database:
132
  except InvalidId:
133
  raise FileNotFound
134
 
135
- async def get_file_old(self, _id, privacy_type:str ):
136
  if privacy_type == "PUBLIC":
137
  try:
138
  file_info = await self.files.find_one({"_id": ObjectId(_id)})
@@ -345,7 +345,7 @@ class Database:
345
  async def get_search_results(self,query=None, file_type=None, max_results=10, offset=0):
346
 
347
  regex = re.compile(re.escape(query), re.IGNORECASE)
348
- filter = {'$or': [{'file.file_name': {"$regex": regex}}, {'file.caption': {"$regex": regex}}]}
349
 
350
  if file_type:
351
  filter['mime_type'] = file_type
 
132
  except InvalidId:
133
  raise FileNotFound
134
 
135
+ async def GetFileByDBName(self, _id, privacy_type:str ):
136
  if privacy_type == "PUBLIC":
137
  try:
138
  file_info = await self.files.find_one({"_id": ObjectId(_id)})
 
345
  async def get_search_results(self,query=None, file_type=None, max_results=10, offset=0):
346
 
347
  regex = re.compile(re.escape(query), re.IGNORECASE)
348
+ filter = {'$or': [{'file.file_name': {"$regex": regex}}, {'file.caption': {"$regex": regex}}, {'title': {"$regex": regex}}, {'release_date': {"$regex": regex}}]}
349
 
350
  if file_type:
351
  filter['mime_type'] = file_type
FileStream/bot/plugins/Admin/admin.py CHANGED
@@ -25,7 +25,7 @@ async def iamadmin(c: Client, m: Message):
25
  if await db.is_admin(m.from_user.id):
26
  await m.reply_text(
27
  text=LANG.ADMIN_GUIDELINES_TEXT_Y.format("/add_user <UserID>","/add_admin <UserID>"),
28
- parse_mode=ParseMode.MARKDOWN,
29
  quote=True)
30
 
31
 
@@ -49,7 +49,7 @@ async def add_user(c: Client, m: Message):
49
  except ValueError or UnboundLocalError:
50
  return await m.reply_text(f"**Usage:**\n <code> /add_admin <{user_id}> </code> ")
51
  details= await FileStream.get_users(user_id)
52
- print("Details :",details)
53
  await db.add_user(user_id, details)
54
  await m.reply_text(f"**User[{m.from_user.first_name} {m.from_user.last_name}] \n User ID : {user_id} Added Successfully**")
55
  else:
@@ -65,7 +65,28 @@ async def add_user(c: Client, m: Message):
65
  except ValueError or UnboundLocalError:
66
  return await m.reply_text(f"**Usage:**\n <code> /add_admin <{user_id}> </code>")
67
  details= await FileStream.get_users(user_id)
68
- print("Details :",details)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
69
  await db.add_admin(user_id, details )
70
  await m.reply_text(f"**Admin [{m.from_user.first_name} {m.from_user.last_name}]\n {user_id} Added Successfully**")
71
  else:
 
25
  if await db.is_admin(m.from_user.id):
26
  await m.reply_text(
27
  text=LANG.ADMIN_GUIDELINES_TEXT_Y.format("/add_user <UserID>","/add_admin <UserID>"),
28
+ parse_mode=ParseMode.HTML,
29
  quote=True)
30
 
31
 
 
49
  except ValueError or UnboundLocalError:
50
  return await m.reply_text(f"**Usage:**\n <code> /add_admin <{user_id}> </code> ")
51
  details= await FileStream.get_users(user_id)
52
+ #print("Details :",details)
53
  await db.add_user(user_id, details)
54
  await m.reply_text(f"**User[{m.from_user.first_name} {m.from_user.last_name}] \n User ID : {user_id} Added Successfully**")
55
  else:
 
65
  except ValueError or UnboundLocalError:
66
  return await m.reply_text(f"**Usage:**\n <code> /add_admin <{user_id}> </code>")
67
  details= await FileStream.get_users(user_id)
68
+ #print("Details :",details)
69
+ """Details : {
70
+ "_": "User",
71
+ "id": ,
72
+ "is_self": false,
73
+ "is_contact": false,
74
+ "is_mutual_contact": false,
75
+ "is_deleted": false,
76
+ "is_bot": false,
77
+ "is_verified": false,
78
+ "is_restricted": false,
79
+ "is_scam": false,
80
+ "is_fake": false,
81
+ "is_support": false,
82
+ "is_premium": false,
83
+ "is_contacts_only": false,
84
+ "first_name": "",
85
+ "last_name": "",
86
+ "status": "UserStatus.RECENTLY",
87
+ "username": "",
88
+ "language_code": "en"
89
+ }"""
90
  await db.add_admin(user_id, details )
91
  await m.reply_text(f"**Admin [{m.from_user.first_name} {m.from_user.last_name}]\n {user_id} Added Successfully**")
92
  else:
FileStream/bot/plugins/FileHandlers/callback.py CHANGED
@@ -266,10 +266,10 @@ async def cb_data(bot: Client, update: CallbackQuery):
266
  }
267
  file_info = get_file_info(message, instruction)
268
  # Here we are Adding the File Into the database First
269
- db_id = await db.add_file(file_info=file_info, db_type="PRIVATE")
270
  await get_file_ids(False, db_id, message)
271
  if True:
272
- file_info = await db.get_file(db_id)
273
  reply_markup, stream_text = await priv_func(file_info['file']['file_name'], file_info['file']['file_size'])
274
  await update.message.edit_text(
275
  text=stream_text,
@@ -472,8 +472,7 @@ async def gen_privfile_menu(_id, file_list_no, update: CallbackQuery):
472
  file_type = "Image"
473
  elif file_id.file_type == FileType.VOICE:
474
  file_type = "Voice"
475
- elif file_id.file_type in (FileType.VIDEO, FileType.ANIMATION,
476
- FileType.VIDEO_NOTE):
477
  file_type = "Video"
478
  elif file_id.file_type == FileType.DOCUMENT:
479
  file_type = "Document"
@@ -533,21 +532,17 @@ async def gen_allfile_list_button(file_list_no: int, user_id: int):
533
  file_list = []
534
  async for x in user_files:
535
  file_list.append([
536
- InlineKeyboardButton(
537
- f"📦 {x['file']['caption']}",
538
- callback_data=f"allfile_{x['_id']}_{file_list_no}")
539
  ])
540
  if total_files > 10:
541
  file_list.append([
542
- InlineKeyboardButton(
543
- "◄",
544
  callback_data="{}".format("userallfiles_" +
545
  str(file_list_no -
546
  1) if file_list_no > 1 else 'N/A')),
547
  InlineKeyboardButton(f"{file_list_no}/{math.ceil(total_files/10)}",
548
  callback_data="N/A"),
549
- InlineKeyboardButton(
550
- "►",
551
  callback_data="{}".format("userallfiles_" +
552
  str(file_list_no +
553
  1) if total_files > file_list_no *
@@ -572,8 +567,7 @@ async def gen_allfile_menu(_id, file_list_no, update: CallbackQuery):
572
  file_type = "Image"
573
  elif file_id.file_type == FileType.VOICE:
574
  file_type = "Voice"
575
- elif file_id.file_type in (FileType.VIDEO, FileType.ANIMATION,
576
- FileType.VIDEO_NOTE):
577
  file_type = "Video"
578
  elif file_id.file_type == FileType.DOCUMENT:
579
  file_type = "Document"
@@ -589,34 +583,26 @@ async def gen_allfile_menu(_id, file_list_no, update: CallbackQuery):
589
  if "video" in file_type.lower():
590
  MYFILES_BUTTONS = InlineKeyboardMarkup([
591
  [
592
- InlineKeyboardButton("sᴛʀᴇᴀᴍ", url=page_link),
593
- InlineKeyboardButton("ᴅᴏᴡɴʟᴏᴀᴅ", url=stream_link)
594
  ],
595
- [
596
- InlineKeyboardButton(
597
- "ɢᴇᴛ ғɪʟᴇ", callback_data=f"sendfile_{myfile_info['_id']}"),
598
- InlineKeyboardButton(
599
- "ʀᴇᴠᴏᴋᴇ ғɪʟᴇ",
600
- callback_data=f"msgdelete_{myfile_info['_id']}_{file_list_no}")
601
  ],
602
  [
603
- InlineKeyboardButton(
604
- "ʙᴀᴄᴋ", callback_data="userfiles_{}".format(file_list_no))
605
  ]
606
  ])
607
  else:
608
  MYFILES_BUTTONS = InlineKeyboardMarkup([
609
  [InlineKeyboardButton("ᴅᴏᴡɴʟᴏᴀᴅ", url=stream_link)],
610
  [
611
- InlineKeyboardButton(
612
- "ɢᴇᴛ ғɪʟᴇ", callback_data=f"sendfile_{myfile_info['_id']}"),
613
- InlineKeyboardButton(
614
- "ʀᴇᴠᴏᴋᴇ ғɪʟᴇ",
615
- callback_data=f"msgdelete_{myfile_info['_id']}_{file_list_no}")
616
  ],
617
  [
618
- InlineKeyboardButton(
619
- "ʙᴀᴄᴋ", callback_data="userfiles_{}".format(file_list_no))
620
  ]
621
  ])
622
 
@@ -642,20 +628,15 @@ async def delete_user_file(_id, file_list_no: int, update: CallbackQuery):
642
  await db.delete_one_privfile(myfile_info['_id'])
643
  #await db.count_links(update.from_user.id, "-")
644
  await update.message.edit_caption(
645
- caption="**Fɪʟᴇ Dᴇʟᴇᴛᴇᴅ Sᴜᴄᴄᴇssғᴜʟʟʏ !**" +
646
- update.message.caption.replace("Cᴏɴғɪʀᴍ ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ ᴅᴇʟᴇᴛᴇ ᴛʜᴇ Fɪʟᴇ",
647
- ""),
648
- reply_markup=InlineKeyboardMarkup(
649
- [[InlineKeyboardButton("ʙᴀᴄᴋ", callback_data=f"userfiles_1")]]))
650
  else:
651
  await db.delete_one_file(myfile_info['_id'])
652
  await db.count_links(update.from_user.id, "-")
653
  await update.message.edit_caption(
654
- caption="**Fɪʟᴇ Dᴇʟᴇᴛᴇᴅ Sᴜᴄᴄᴇssғᴜʟʟʏ !**" +
655
- update.message.caption.replace("Cᴏɴғɪʀᴍ ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ ᴅᴇʟᴇᴛᴇ ᴛʜᴇ Fɪʟᴇ",
656
- ""),
657
- reply_markup=InlineKeyboardMarkup(
658
- [[InlineKeyboardButton("ʙᴀᴄᴋ", callback_data=f"userfiles_1")]]))
659
 
660
  except FileNotFound:
661
  await update.answer("File Already Deleted")
 
266
  }
267
  file_info = get_file_info(message, instruction)
268
  # Here we are Adding the File Into the database First
269
+ db_id = await db.add_file(file_info=file_info, db_type="TEMPORARY")
270
  await get_file_ids(False, db_id, message)
271
  if True:
272
+ file_info = await db.GetFileByDBName(db_id, privacy_type="TEMPORARY")
273
  reply_markup, stream_text = await priv_func(file_info['file']['file_name'], file_info['file']['file_size'])
274
  await update.message.edit_text(
275
  text=stream_text,
 
472
  file_type = "Image"
473
  elif file_id.file_type == FileType.VOICE:
474
  file_type = "Voice"
475
+ elif file_id.file_type in (FileType.VIDEO, FileType.ANIMATION,FileType.VIDEO_NOTE):
 
476
  file_type = "Video"
477
  elif file_id.file_type == FileType.DOCUMENT:
478
  file_type = "Document"
 
532
  file_list = []
533
  async for x in user_files:
534
  file_list.append([
535
+ InlineKeyboardButton(f"📦 {x['file']['caption']}", callback_data=f"allfile_{x['_id']}_{file_list_no}")
 
 
536
  ])
537
  if total_files > 10:
538
  file_list.append([
539
+ InlineKeyboardButton( "◄",
 
540
  callback_data="{}".format("userallfiles_" +
541
  str(file_list_no -
542
  1) if file_list_no > 1 else 'N/A')),
543
  InlineKeyboardButton(f"{file_list_no}/{math.ceil(total_files/10)}",
544
  callback_data="N/A"),
545
+ InlineKeyboardButton("►",
 
546
  callback_data="{}".format("userallfiles_" +
547
  str(file_list_no +
548
  1) if total_files > file_list_no *
 
567
  file_type = "Image"
568
  elif file_id.file_type == FileType.VOICE:
569
  file_type = "Voice"
570
+ elif file_id.file_type in (FileType.VIDEO, FileType.ANIMATION,FileType.VIDEO_NOTE):
 
571
  file_type = "Video"
572
  elif file_id.file_type == FileType.DOCUMENT:
573
  file_type = "Document"
 
583
  if "video" in file_type.lower():
584
  MYFILES_BUTTONS = InlineKeyboardMarkup([
585
  [
586
+ InlineKeyboardButton("sᴛʀᴇᴀᴍ", url=page_link),
587
+ InlineKeyboardButton("ᴅᴏᴡɴʟᴏᴀᴅ", url=stream_link)
588
  ],
589
+ [
590
+ InlineKeyboardButton("ɢᴇᴛ ғɪʟᴇ", callback_data=f"sendfile_{myfile_info['_id']}"),
591
+ InlineKeyboardButton("ʀᴇᴠᴏᴋᴇ ғɪʟᴇ",callback_data=f"msgdelete_{myfile_info['_id']}_{file_list_no}")
 
 
 
592
  ],
593
  [
594
+ InlineKeyboardButton("ʙᴀᴄᴋ", callback_data="userfiles_{}".format(file_list_no))
 
595
  ]
596
  ])
597
  else:
598
  MYFILES_BUTTONS = InlineKeyboardMarkup([
599
  [InlineKeyboardButton("ᴅᴏᴡɴʟᴏᴀᴅ", url=stream_link)],
600
  [
601
+ InlineKeyboardButton("ɢᴇᴛ ғɪʟᴇ", callback_data=f"sendfile_{myfile_info['_id']}"),
602
+ InlineKeyboardButton("ʀᴇᴠᴏᴋᴇ ғɪʟᴇ",callback_data=f"msgdelete_{myfile_info['_id']}_{file_list_no}")
 
 
 
603
  ],
604
  [
605
+ InlineKeyboardButton("ʙᴀᴄᴋ", callback_data="userfiles_{}".format(file_list_no))
 
606
  ]
607
  ])
608
 
 
628
  await db.delete_one_privfile(myfile_info['_id'])
629
  #await db.count_links(update.from_user.id, "-")
630
  await update.message.edit_caption(
631
+ caption="**Fɪʟᴇ Dᴇʟᴇᴛᴇᴅ Sᴜᴄᴄᴇssғᴜʟʟʏ !**" + update.message.caption.replace("Cᴏɴғɪʀᴍ ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ ᴅᴇʟᴇᴛᴇ ᴛʜᴇ Fɪʟᴇ",""),
632
+ reply_markup=InlineKeyboardMarkup([[InlineKeyboardButton("ʙᴀᴄᴋ", callback_data=f"userfiles_1")]]))
 
 
 
633
  else:
634
  await db.delete_one_file(myfile_info['_id'])
635
  await db.count_links(update.from_user.id, "-")
636
  await update.message.edit_caption(
637
+ caption="**Fɪʟᴇ Dᴇʟᴇᴛᴇᴅ Sᴜᴄᴄᴇssғᴜʟʟʏ !**" + update.message.caption.replace("Cᴏɴғɪʀᴍ ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ ᴅᴇʟᴇᴛᴇ ᴛʜᴇ Fɪʟᴇ", ""),
638
+ reply_markup=InlineKeyboardMarkup([[InlineKeyboardButton("ʙᴀᴄᴋ", callback_data=f"userfiles_1")]])
639
+ )
 
 
640
 
641
  except FileNotFound:
642
  await update.answer("File Already Deleted")
FileStream/bot/plugins/FileHandlers/files.py CHANGED
@@ -149,12 +149,10 @@ async def handle_inline_query(client, query):
149
  title=file['file']['file_name'],
150
  document_file_id=file['file']['file_id'],
151
  caption=file['file']['file_name'] or "",
152
- description=
153
- f" Size: {humanbytes(file['file']['file_size'])}\nType:{file['file']['mime_type']} ",
154
- reply_markup=InlineKeyboardMarkup([[
155
- InlineKeyboardButton('Search',
156
- switch_inline_query_current_chat='')
157
- ]])))
158
  if results:
159
  switch_pm_text = f"Results"
160
  if text:
 
149
  title=file['file']['file_name'],
150
  document_file_id=file['file']['file_id'],
151
  caption=file['file']['file_name'] or "",
152
+ description=f"Size: {humanbytes(file['file']['file_size'])}\nType:{file['file']['mime_type']} ",
153
+ reply_markup=InlineKeyboardMarkup([[InlineKeyboardButton('Search',switch_inline_query_current_chat='')]])
154
+ )
155
+ )
 
 
156
  if results:
157
  switch_pm_text = f"Results"
158
  if text:
FileStream/utils/FileProcessors/bot_utils.py CHANGED
@@ -171,13 +171,16 @@ async def gen_link(_id):
171
  file_name = file_info['file']['file_name']
172
  file_size = humanbytes(file_info['file']['file_size'])
173
  mime_type = file_info['file']['mime_type']
174
-
 
 
 
175
  page_link = f"{Server.URL}app/watch/{_id}"
176
  stream_link = f"{Server.URL}api/dl/{_id}"
177
  file_link = f"https://t.me/{FileStream.username}?start=file_{_id}"
178
 
179
  if "video" in mime_type:
180
- stream_text = LANG.STREAM_TEXT.format(file_name, file_size, stream_link, page_link, file_link)
181
  reply_markup = InlineKeyboardMarkup(
182
  [[
183
  InlineKeyboardButton("sᴛʀᴇᴀᴍ", url=page_link),
 
171
  file_name = file_info['file']['file_name']
172
  file_size = humanbytes(file_info['file']['file_size'])
173
  mime_type = file_info['file']['mime_type']
174
+ poster = file_info['poster']
175
+ title=file_info["title"]
176
+ description=file_info['description']
177
+ release_date=file_info["release_date"],
178
  page_link = f"{Server.URL}app/watch/{_id}"
179
  stream_link = f"{Server.URL}api/dl/{_id}"
180
  file_link = f"https://t.me/{FileStream.username}?start=file_{_id}"
181
 
182
  if "video" in mime_type:
183
+ stream_text = LANG.STREAM_TEXT.format(poster,description,title,release_date,file_name, file_size, stream_link, page_link, file_link)
184
  reply_markup = InlineKeyboardMarkup(
185
  [[
186
  InlineKeyboardButton("sᴛʀᴇᴀᴍ", url=page_link),
FileStream/utils/FileProcessors/translation.py CHANGED
@@ -35,6 +35,9 @@ class LANG(object):
35
 
36
  STREAM_TEXT = """
37
  <i><u>𝗬𝗼𝘂𝗿 𝗟𝗶𝗻𝗸 𝗚𝗲𝗻𝗲𝗿𝗮𝘁𝗲𝗱 !</u></i>\n
 
 
 
38
  <b>📂 Fɪʟᴇ ɴᴀᴍᴇ :</b> <b><code>{}</code></b>\n
39
  <b>📦 Fɪʟᴇ ꜱɪᴢᴇ :</b> <code>{}</code>\n
40
  <b>📥 Dᴏᴡɴʟᴏᴀᴅ :</b> <code>{}</code>\n
@@ -48,7 +51,7 @@ class LANG(object):
48
  <b>📦 Fɪʟᴇ ꜱɪᴢᴇ :</b> <code>{}</code>\n
49
  """
50
  ADMIN_GUIDELINES_TEXT_Y = """
51
- <b>🪂 ✩░▒▓▆▅▃▂▁🅰🅳🅼🅸🅽 🅶🆄🅸🅳🅴🅻🅸🅽🅴🆂▁▂▃▅▆▓▒░✩ 🪂</b>\n
52
  <b>🔗 ᴄᴏᴍᴍᴀɴᴅ 1:</b> <b>{}</b>\n
53
  <b>🔗 ᴄᴏᴍᴍᴀɴᴅ 2 :</b> <b>{}</b>\n
54
  """
 
35
 
36
  STREAM_TEXT = """
37
  <i><u>𝗬𝗼𝘂𝗿 𝗟𝗶𝗻𝗸 𝗚𝗲𝗻𝗲𝗿𝗮𝘁𝗲𝗱 !</u></i>\n
38
+ <img src="{}" width="150" height="300">\n
39
+ <b>📣 ᴅᴇꜱᴄʀɪᴘᴛɪᴏɴ :</b> {} \n
40
+ <b>📊 ⒾⓂⒹⒷ :</b> {} 📦 રειελȘε {} \n
41
  <b>📂 Fɪʟᴇ ɴᴀᴍᴇ :</b> <b><code>{}</code></b>\n
42
  <b>📦 Fɪʟᴇ ꜱɪᴢᴇ :</b> <code>{}</code>\n
43
  <b>📥 Dᴏᴡɴʟᴏᴀᴅ :</b> <code>{}</code>\n
 
51
  <b>📦 Fɪʟᴇ ꜱɪᴢᴇ :</b> <code>{}</code>\n
52
  """
53
  ADMIN_GUIDELINES_TEXT_Y = """
54
+ <b>🪂 ✩🅰🅳🅼🅸🅽 🅶🆄🅸🅳🅴🅻🅸🅽🅴🆂✩ 🪂</b>\n
55
  <b>🔗 ᴄᴏᴍᴍᴀɴᴅ 1:</b> <b>{}</b>\n
56
  <b>🔗 ᴄᴏᴍᴍᴀɴᴅ 2 :</b> <b>{}</b>\n
57
  """