@@ -108,6 +108,19 @@ async def delCaption(_, msg):
108108 await rkn .delete ()
109109 return
110110
111+ # Extract Language
112+ def extract_language (file_name ):
113+ language_pattern = r'\b(Hindi|English|Tamil|Bhojpuri|Nepali|Punjabi|Telugu|Malayalam|Kannada|Hin)\b'
114+ languages = set (re .findall (language_pattern , file_name , re .IGNORECASE ))
115+ if not languages :
116+ return "Hindi-English"
117+ return ", " .join (sorted (languages , key = str .lower ))
118+
119+ # Extract Year
120+ def extract_year (file_name ):
121+ match = re .search (r'\b(19\d{2}|20\d{2})\b' , file_name )
122+ return match .group (1 ) if match else None
123+
111124
112125@Client .on_message (filters .channel )
113126async def auto_edit_caption (bot , message ):
@@ -123,13 +136,14 @@ async def auto_edit_caption(bot, message):
123136 .replace ("." , " " )
124137 )
125138 cap_dets = await chnl_ids .find_one ({"chnl_id" : chnl_id })
139+ caption = message .caption if message .caption else file_name
126140 try :
127141 if cap_dets :
128142 cap = cap_dets ["caption" ]
129- replaced_caption = cap .format (file_name = file_name )
143+ replaced_caption = cap .format (file_name = file_name , caption = caption , language = extract_language ( file_name ), year = extract_year ( file_name ) )
130144 await message .edit (replaced_caption )
131145 else :
132- replaced_caption = Rkn_Bots .DEF_CAP .format (file_name = file_name )
146+ replaced_caption = Rkn_Bots .DEF_CAP .format (file_name = file_name , caption = caption , language = extract_language ( file_name ), year = extract_year ( file_name ) )
133147 await message .edit (replaced_caption )
134148 except FloodWait as e :
135149 await asyncio .sleep (e .x )
0 commit comments