forked from dymik739/modular-bot-framework-for-telegram
		
	Added new module: auto-schedule
This commit is contained in:
		
							parent
							
								
									f621ec4aad
								
							
						
					
					
						commit
						76c6bd3c0e
					
				
							
								
								
									
										41
									
								
								modules/auto-schedule/index.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								modules/auto-schedule/index.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,41 @@
 | 
			
		||||
if self.MESSAGE.text.lower() == "!пара":
 | 
			
		||||
    try:
 | 
			
		||||
        schedule = json.loads( readfile(self.path + "schedule.json") )
 | 
			
		||||
    
 | 
			
		||||
        current_time = datetime.datetime.now()
 | 
			
		||||
    
 | 
			
		||||
        current_week = current_time.isocalendar()[1] % 2
 | 
			
		||||
        current_day = current_time.weekday() - 1
 | 
			
		||||
        current_seconds = current_time.hour * 3600 + current_time.minute * 60 + current_time.second
 | 
			
		||||
    
 | 
			
		||||
        if current_day > 4:
 | 
			
		||||
            next_week = int(not bool(current_week))
 | 
			
		||||
            day = -1
 | 
			
		||||
    
 | 
			
		||||
            next_pair = None
 | 
			
		||||
    
 | 
			
		||||
            pair_found = False
 | 
			
		||||
            for i in schedule[next_week]:
 | 
			
		||||
                if not pair_found:
 | 
			
		||||
                    day += 1
 | 
			
		||||
                    for j in schedule[next_week][i]:
 | 
			
		||||
                        next_pair = schedule[next_week][i][j]
 | 
			
		||||
                        pair_found = True
 | 
			
		||||
                        break
 | 
			
		||||
    
 | 
			
		||||
            self.RESPONCE = "Сьогодні вихідний, тому пар немає)\nНаступна пара - {} ({}) у {}\nПосилання (якщо воно чомусь треба): {}".format(next_pair["subject"], next_pair["lector"], self.days[day], next_pair["link"])
 | 
			
		||||
        else:
 | 
			
		||||
            for i in self.timetable:
 | 
			
		||||
                if current_seconds < i:
 | 
			
		||||
                    print("[DEBUG] Looking up a relevant pair...")
 | 
			
		||||
                    try:
 | 
			
		||||
                        relevant_pair = schedule[current_week][current_day + 1][str(self.timetable[i])]
 | 
			
		||||
                        self.RESPONCE = "Актуальна пара: {} ({})\nПосилання: {}".format(relevant_pair["subject"], relevant_pair["lector"], relevant_pair["link"])
 | 
			
		||||
                        break
 | 
			
		||||
                    except Exception as e:
 | 
			
		||||
                        print("[WARN] module: auto-schedule: exception {} while looking up the pair".format(e))
 | 
			
		||||
            else:
 | 
			
		||||
                self.RESPONCE = "Сьогодні більше немає пар"
 | 
			
		||||
    
 | 
			
		||||
    except Exception as e:
 | 
			
		||||
        print("[WARN] module: auto-schedule: failed to process schedule.json ({})".format(e))
 | 
			
		||||
							
								
								
									
										7
									
								
								modules/auto-schedule/meta.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								modules/auto-schedule/meta.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,7 @@
 | 
			
		||||
{
 | 
			
		||||
    "start_on_boot": true,
 | 
			
		||||
    "alias": "auto-schedule",
 | 
			
		||||
    "version": 1,
 | 
			
		||||
    "index_file": "index.py",
 | 
			
		||||
    "predefine": "predefine.py"
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1
									
								
								modules/auto-schedule/predefine.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								modules/auto-schedule/predefine.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
			
		||||
self.timetable = {36300: 0, 43200: 1, 50100: 2, 57000: 3, 63900: 4, 72300: 5, 78900: 6}
 | 
			
		||||
							
								
								
									
										1
									
								
								modules/auto-schedule/schedule.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								modules/auto-schedule/schedule.json
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user