Spaces:
Running
Running
BinaryONe
commited on
Commit
·
dc937f8
1
Parent(s):
513293c
Callback Update
Browse files
FileStream/Database/database.py
CHANGED
@@ -17,10 +17,11 @@ class Database:
|
|
17 |
self._client = motor.motor_asyncio.AsyncIOMotorClient(uri)
|
18 |
self.db = self._client[database_name]
|
19 |
self.users = self.db.Users
|
|
|
20 |
self.files = self.db.Public_Files
|
21 |
self.pfile = self.db.Private_Files
|
22 |
self.web_upload = self.db.Web_Files
|
23 |
-
|
24 |
|
25 |
#---------------------[ SCHEMAS ]------------------------------#
|
26 |
#---------------------[ NEW USER ]---------------------#
|
@@ -154,6 +155,12 @@ class Database:
|
|
154 |
await self.count_links(file_info["user_id"], "+")
|
155 |
return (await self.files.insert_one(file_info)).inserted_id
|
156 |
|
|
|
|
|
|
|
|
|
|
|
|
|
157 |
# ---------------------[ FIND FILE IN DB for Bot and APIs]---------------------#
|
158 |
async def get_file(self, _id):
|
159 |
try:
|
|
|
17 |
self._client = motor.motor_asyncio.AsyncIOMotorClient(uri)
|
18 |
self.db = self._client[database_name]
|
19 |
self.users = self.db.Users
|
20 |
+
self.tfiles = self.db.Temp_Files
|
21 |
self.files = self.db.Public_Files
|
22 |
self.pfile = self.db.Private_Files
|
23 |
self.web_upload = self.db.Web_Files
|
24 |
+
|
25 |
|
26 |
#---------------------[ SCHEMAS ]------------------------------#
|
27 |
#---------------------[ NEW USER ]---------------------#
|
|
|
155 |
await self.count_links(file_info["user_id"], "+")
|
156 |
return (await self.files.insert_one(file_info)).inserted_id
|
157 |
|
158 |
+
# ---------------------[ ADD FILE TO Temp DB ]---------------------#
|
159 |
+
async def add_temp_file(self, file_info):
|
160 |
+
file_info["time"] = Time_ISTKolNow()
|
161 |
+
return (await self.tfiles.insert_one(file_info)).inserted_id
|
162 |
+
|
163 |
+
|
164 |
# ---------------------[ FIND FILE IN DB for Bot and APIs]---------------------#
|
165 |
async def get_file(self, _id):
|
166 |
try:
|
FileStream/bot/plugins/FileHandlers/callback.py
CHANGED
@@ -186,21 +186,18 @@ async def cb_data(bot: Client, update: CallbackQuery):
|
|
186 |
title, year = Get_Title_Year(name)
|
187 |
print(f"** ANY SEARCH :{name} YEAR :{year}")
|
188 |
get_imdb_id = json.loads(imdb.search(title, year=int(year)))
|
189 |
-
#print(f"ANY SEARCH :{title} YEAR :{year} IMDB Response :{res}")
|
190 |
-
#print("TMDB",search_tmdb_any(title, year))
|
191 |
-
#print(f"IMDB ID :{get_imdb_id['results'][0]['id']}")
|
192 |
print(f"\n** GET_ID {get_imdb_id}")
|
193 |
res=json.loads(imdb.get_by_id(get_imdb_id['results'][0]['id']))
|
194 |
print(f"\n** IMDB Response :{res}")
|
195 |
instruction = {
|
196 |
-
"privacy_type": "
|
197 |
"user_id": user_id,
|
198 |
"user_type": "TELEGRAM",
|
199 |
-
"IMDB_id": get_imdb_id['results'][0]['id'],
|
200 |
-
"poster": res['poster'],
|
201 |
-
"title": res['name'],
|
202 |
-
"release_date": res["datePublished"],
|
203 |
-
"type": res['type'],
|
204 |
"description":res["description"],
|
205 |
"keywords":res["keywords"].split(",") if res.get("keywords") else [],
|
206 |
"genre": res.get("genre", []) ,
|
@@ -208,7 +205,7 @@ async def cb_data(bot: Client, update: CallbackQuery):
|
|
208 |
|
209 |
file_info = get_file_info(message, instruction)
|
210 |
# Here we are Adding the File Into the database First
|
211 |
-
inserted_id = await db.
|
212 |
await get_file_ids(False, inserted_id, message)
|
213 |
#All the Time Get_file_ids should be called before update privacy or else tagged_users will be {}
|
214 |
await db.update_privacy(file_info)
|
|
|
186 |
title, year = Get_Title_Year(name)
|
187 |
print(f"** ANY SEARCH :{name} YEAR :{year}")
|
188 |
get_imdb_id = json.loads(imdb.search(title, year=int(year)))
|
|
|
|
|
|
|
189 |
print(f"\n** GET_ID {get_imdb_id}")
|
190 |
res=json.loads(imdb.get_by_id(get_imdb_id['results'][0]['id']))
|
191 |
print(f"\n** IMDB Response :{res}")
|
192 |
instruction = {
|
193 |
+
"privacy_type": "TEMPORARY",
|
194 |
"user_id": user_id,
|
195 |
"user_type": "TELEGRAM",
|
196 |
+
"IMDB_id":get_imdb_id['results'][0]['id'] if get_imdb_id['results'][0]['id']else "None",
|
197 |
+
"poster": res['poster'] if res['poster'] else "None",
|
198 |
+
"title": res['name'] if res['name'] else "None",
|
199 |
+
"release_date": res["datePublished"] if res['datePublished'] else "None",
|
200 |
+
"type": res['type'] if res['type'] else "None",
|
201 |
"description":res["description"],
|
202 |
"keywords":res["keywords"].split(",") if res.get("keywords") else [],
|
203 |
"genre": res.get("genre", []) ,
|
|
|
205 |
|
206 |
file_info = get_file_info(message, instruction)
|
207 |
# Here we are Adding the File Into the database First
|
208 |
+
inserted_id = await db.add_temp_file(file_info)
|
209 |
await get_file_ids(False, inserted_id, message)
|
210 |
#All the Time Get_file_ids should be called before update privacy or else tagged_users will be {}
|
211 |
await db.update_privacy(file_info)
|
FileStream/config.py
CHANGED
@@ -21,14 +21,14 @@ class Telegram:
|
|
21 |
START_PIC = env.get('START_PIC',"https://graph.org/file/290af25276fa34fa8f0aa.jpg")
|
22 |
VERIFY_PIC = env.get('VERIFY_PIC',"https://graph.org/file/736e21cc0efa4d8c2a0e4.jpg")
|
23 |
MULTI_CLIENT = False
|
24 |
-
FLOG_CHANNEL = int(env.get("FLOG_CHANNEL", None)) # Logs channel for file logs
|
25 |
-
PFLOG_CHANNEL = int(env.get("PFLOG_CHANNEL"))
|
26 |
-
|
27 |
ULOG_GROUP = int(env.get("ULOG_GROUP", None)) # Logs channel for user logs
|
28 |
MODE = env.get("MODE", "primary")
|
29 |
SECONDARY = True if MODE.lower() == "secondary" else False
|
30 |
AUTH_USERS = list(set(int(x)for x in str(env.get("AUTH_USERS", "")).split()))
|
31 |
-
DATA_SOURCES = [FLOG_CHANNEL, PFLOG_CHANNEL, ULOG_GROUP]
|
32 |
|
33 |
class TMDB:
|
34 |
API = str(env.get("TMDB_API", ""))
|
|
|
21 |
START_PIC = env.get('START_PIC',"https://graph.org/file/290af25276fa34fa8f0aa.jpg")
|
22 |
VERIFY_PIC = env.get('VERIFY_PIC',"https://graph.org/file/736e21cc0efa4d8c2a0e4.jpg")
|
23 |
MULTI_CLIENT = False
|
24 |
+
FLOG_CHANNEL = int(env.get("FLOG_CHANNEL", None)) # Logs channel for file logs/Temporary Files
|
25 |
+
PFLOG_CHANNEL = int(env.get("PFLOG_CHANNEL", None)) #Private File Logs
|
26 |
+
DFLOG_CHANNEL = int(env.get("TFLOG_CHANNEL", None)) # Database File log All Public Files
|
27 |
ULOG_GROUP = int(env.get("ULOG_GROUP", None)) # Logs channel for user logs
|
28 |
MODE = env.get("MODE", "primary")
|
29 |
SECONDARY = True if MODE.lower() == "secondary" else False
|
30 |
AUTH_USERS = list(set(int(x)for x in str(env.get("AUTH_USERS", "")).split()))
|
31 |
+
DATA_SOURCES = [FLOG_CHANNEL, PFLOG_CHANNEL, DFLOG_CHANNEL, ULOG_GROUP]
|
32 |
|
33 |
class TMDB:
|
34 |
API = str(env.get("TMDB_API", ""))
|
FileStream/utils/FileProcessors/bot_utils.py
CHANGED
@@ -157,8 +157,8 @@ async def gen_priv_file_link(_id):
|
|
157 |
reply_markup = InlineKeyboardMarkup(
|
158 |
[[InlineKeyboardButton("ᴅᴏᴡɴʟᴏᴀᴅ", url=stream_link)],
|
159 |
[
|
160 |
-
|
161 |
-
|
162 |
], [InlineKeyboardButton("ᴄʟᴏsᴇ", callback_data="close")]])
|
163 |
return reply_markup, stream_text
|
164 |
|
@@ -177,24 +177,23 @@ async def gen_link(_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 |
-
|
184 |
-
|
185 |
],
|
186 |
[
|
187 |
-
|
188 |
-
|
189 |
], [InlineKeyboardButton("ᴄʟᴏsᴇ", callback_data="close")]])
|
190 |
else:
|
191 |
stream_text = LANG.STREAM_TEXT_X.format(file_name, file_size, stream_link,file_link)
|
192 |
reply_markup = InlineKeyboardMarkup(
|
193 |
[[InlineKeyboardButton("ᴅᴏᴡɴʟᴏᴀᴅ", url=stream_link)],
|
194 |
[
|
195 |
-
|
196 |
-
|
197 |
-
callback_data=f"msgdelpvt_{_id}")
|
198 |
], [InlineKeyboardButton("ᴄʟᴏsᴇ", callback_data="close")]])
|
199 |
return reply_markup, stream_text
|
200 |
|
|
|
157 |
reply_markup = InlineKeyboardMarkup(
|
158 |
[[InlineKeyboardButton("ᴅᴏᴡɴʟᴏᴀᴅ", url=stream_link)],
|
159 |
[
|
160 |
+
InlineKeyboardButton("ɢᴇᴛ ғɪʟᴇ", url=file_link),
|
161 |
+
InlineKeyboardButton("ʀᴇᴠᴏᴋᴇ ғɪʟᴇ",callback_data=f"msgdelpvt_{_id}")
|
162 |
], [InlineKeyboardButton("ᴄʟᴏsᴇ", callback_data="close")]])
|
163 |
return reply_markup, stream_text
|
164 |
|
|
|
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),
|
184 |
+
InlineKeyboardButton("ᴅᴏᴡɴʟᴏᴀᴅ", url=stream_link)
|
185 |
],
|
186 |
[
|
187 |
+
InlineKeyboardButton("ɢᴇᴛ ғɪʟᴇ", url=file_link),
|
188 |
+
InlineKeyboardButton("ʀᴇᴠᴏᴋᴇ ғɪʟᴇ",callback_data=f"msgdelpvt_{_id}")
|
189 |
], [InlineKeyboardButton("ᴄʟᴏsᴇ", callback_data="close")]])
|
190 |
else:
|
191 |
stream_text = LANG.STREAM_TEXT_X.format(file_name, file_size, stream_link,file_link)
|
192 |
reply_markup = InlineKeyboardMarkup(
|
193 |
[[InlineKeyboardButton("ᴅᴏᴡɴʟᴏᴀᴅ", url=stream_link)],
|
194 |
[
|
195 |
+
InlineKeyboardButton("ɢᴇᴛ ғɪʟᴇ", url=file_link),
|
196 |
+
InlineKeyboardButton("ʀᴇᴠᴏᴋᴇ ғɪʟᴇ",callback_data=f"msgdelpvt_{_id}")
|
|
|
197 |
], [InlineKeyboardButton("ᴄʟᴏsᴇ", callback_data="close")]])
|
198 |
return reply_markup, stream_text
|
199 |
|
FileStream/utils/FileProcessors/file_properties.py
CHANGED
@@ -79,7 +79,8 @@ async def get_file_ids(client: Client | bool, db_id: str, message) -> Optional[F
|
|
79 |
if file_info['location'] in Telegram.DATA_SOURCES:
|
80 |
print("Already Present in Data Sources ", Telegram.DATA_SOURCES)
|
81 |
else:
|
82 |
-
|
|
|
83 |
#updated_info = update_file_info(log_msg)
|
84 |
await db.update_file_info(db_id, update_file_info(log_msg))
|
85 |
await db.update_file_ids(db_id, await update_file_id(await db.get_file(db_id),MULTI_CLIENTS))
|
|
|
79 |
if file_info['location'] in Telegram.DATA_SOURCES:
|
80 |
print("Already Present in Data Sources ", Telegram.DATA_SOURCES)
|
81 |
else:
|
82 |
+
source = Telegram.DFLOG_CHANNEL if file_info['privacy_type']=="PUBLIC" else Telegram.FLOG_CHANNEL
|
83 |
+
log_msg = await send_file(FileStream, db_id, file_info['file']['file_id'], message, source)
|
84 |
#updated_info = update_file_info(log_msg)
|
85 |
await db.update_file_info(db_id, update_file_info(log_msg))
|
86 |
await db.update_file_ids(db_id, await update_file_id(await db.get_file(db_id),MULTI_CLIENTS))
|