@ -3,6 +3,9 @@ from rocketchat.api import RocketChatAPI
import configparser
import json
import requests
import yaml
import subprocess
config = configparser . ConfigParser ( )
config . read ( ' config.ini ' )
@ -50,30 +53,85 @@ if __name__ == '__main__':
import time
import schedule
def getroomdata ( ) :
already_updated = False
import datetime
from datetime import timedelta
while True :
time . sleep ( 4 )
#already_updated = True
now = datetime . datetime . now ( )
current_hour = now . strftime ( " % H " )
room_list = [ ]
rooms = os . listdir ( ' rooms ' )
for room in rooms :
room_file = open ( ' rooms/ ' + room , ' r ' )
room_file_raw = room_file . read ( )
room_file . close ( )
if int ( current_hour ) > 6 :
aftersix = True
room_file_list = room_file_raw . split ( ' § % § % ' )
room_list . append ( [ room [ : - 3 ] , room_file_list [ 0 ] , room_file_list [ 1 ] , room_file_list [ 2 ] ] )
return room_list
if int ( current_hour ) < 6 :
aftersix = False
already_updated == False
if aftersix == True and already_updated == False :
room_list = [ ]
rooms = os . listdir ( ' rooms ' )
for room in rooms :
room_file = open ( ' rooms/ ' + room , ' r ' )
room_file_raw = room_file . read ( )
room_file . close ( )
room_file_list = room_file_raw . split ( ' § % § % ' )
room_list . append ( [ room [ : - 4 ] , room_file_list [ 0 ] , room_file_list [ 1 ] , room_file_list [ 2 ] ] )
import datetime
from datetime import timedelta
while True :
time . sleep ( 4 )
with open ( spider_directory + ' /spiders/config.yaml ' , " r " ) as stream :
try :
config = yaml . safe_load ( stream )
except yaml . YAMLError as exc :
print ( exc )
fdb_list = [ ]
#print(config)
for key in config :
fdb_list . append ( key )
data = dict ( { } )
for room in room_list :
print ( room [ 0 ] )
room_fdbs = room [ 2 ]
#subprocess.run(["python", spider_directory + 'main.py', fdbs])
for room_fdb in eval ( room_fdbs ) :
#print('room_fdb',room_fdb, 'fdb_list',fdb_list)
if room_fdb in fdb_list :
try :
iteration_var_list = config . get ( room_fdb ) . get ( " entry-list " ) . get ( " iteration-var-list " )
except Exception as e :
print ( ' there was an error with the entry-list parameter in the config regarding the fdb ' , room_fdb )
iterdict = { }
for i in eval ( iteration_var_list ) :
f = open ( spider_directory + " /spiders/output/ " + room_fdb + str ( i ) + " entryList.txt " )
text = f . read ( )
dictionary_entry_list = eval ( text )
iterdict [ i ] = dictionary_entry_list
data [ room_fdb ] = iterdict
print ( ' data ' , data [ ' giz ' ] [ 2 ] , ' data ' )
already_updated = True
# if datestime.split over etc and updated= true etc
n + = 1
print ( n )
@ -143,11 +201,31 @@ if __name__ == '__main__':
room_file . close ( )
room_file_list = room_file_raw . split ( ' § % § % ' )
room_list . append ( [ room [ : - 3 ] , room_file_list [ 0 ] , room_file_list [ 1 ] , room_file_list [ 2 ] ] )
room_list . append ( [ room [ : - 4 ] , room_file_list [ 0 ] , room_file_list [ 1 ] , room_file_list [ 2 ] ] )
#print(room_list)
answer = str ( room_list )
if user_input_list [ 0 ] == ' printfdbs ' :
answer = str ( fdb_list )
if len ( user_input_list ) > 1 :
answer = ' Die Syntax zum Ausgeben der konfigurierten Förderdatenbanken hat einen Fehler. Versuche es erneut, mit -> printfdbs '
if user_input_list [ 0 ] == ' deleteroom ' :
try :
room_id_del = user_input_list [ 1 ]
except Exception as e :
room_id_del = ' NONE '
print ( e )
os . remove ( " rooms/ " + room_id_del + " .txt " )
anwer = ' deleting the requested room.. '
if len ( user_input_list ) > 2 :
answer = ' Die Syntax zum Löschen eines Raumes hat einen Fehler. Versuche es erneut, nach dem Muster -> deleteroom <room_id> '
if user_input_list [ 0 ] == ' createroom ' :
try :
@ -173,16 +251,19 @@ if __name__ == '__main__':
answer = ' Um einen Raum zu erstellen, in dem neueste Einträge geteilt werden, lautet die Syntax: createroom <Raumname> <Liste-Datenbanken> <Liste-Filtertags> '
else :
new_room = api . create_public_room ( room_name ,
members = [ latest_message_user_username ] ,
read_only = True )
new_room_id = new_room [ ' channel ' ] [ ' _id ' ]
room_file = open ( ' rooms/ ' + new_room_id + ' .txt ' , ' w ' )
room_file . write ( room_name + ' § % § % ' + databases + ' § % § % ' + filters )
room_file . close ( )
answer = ' Der Command wurde übermittelt '
try :
new_room = api . create_public_room ( room_name ,
members = [ latest_message_user_username ] ,
read_only = True )
new_room_id = new_room [ ' channel ' ] [ ' _id ' ]
room_file = open ( ' rooms/ ' + new_room_id + ' .txt ' , ' w ' )
room_file . write ( room_name + ' § % § % ' + databases + ' § % § % ' + filters )
room_file . close ( )
answer = ' Der Command wurde übermittelt '
except Exception as e :
print ( ' it was not able to create the room, the original error message is: ' , e )
answer = ' There was an error creating the room, look up the logs.. the original error was: ' + str ( e )
#print('oi', user_input)