11import random
2- import gspread
32import re
43from math import floor
54import tasklists
@@ -564,6 +563,7 @@ def manual_revert_tasks(username, tier, task_id):
564563
565564
566565'''
566+ DEPRECATED - No replacement
567567import_spreadsheet:
568568
569569The import_spreadsheet function, Imports a spreadsheet into the database.
@@ -583,123 +583,123 @@ def manual_revert_tasks(username, tier, task_id):
583583 list: each element is a str: of the tier import status.
584584
585585'''
586- def import_spreadsheet (username , url ):
587- def update_current_task_from_sheet (username , tier , task_id ):
588- coll = mydb ['taskAccounts' ]
589- task_check = coll .find_one ({'username' : username , '%s._id' % tier : task_id },
590- {'_id' : 0 , '%s.status' % tier : 1 , '%s._id' % tier : 1 })
591- task_updated = False
592- if task_check [tier ][task_id - 1 ]['status' ] == 'Incomplete' :
593- task_updated = True
594- coll .update_one ({'username' : username , '%s._id' % tier : task_id },
595- {'$set' : {'%s.$.taskCurrent' % tier : True }})
596- return task_updated
597-
598- try :
599- error = None
600- task_import_logs = []
601- task_current_logs = []
602- speadsheet_key = re .search ('\/d\/(.*?)(\/|$)' , url )
603- if speadsheet_key :
604- service = gspread .service_account (filename = "service_account.json" )
605- google_sheet = service .open_by_key (speadsheet_key .group (1 ))
606- info_sheet = google_sheet .worksheet ("Info" )
607-
608- current_sheet_tier = info_sheet .get ('B13:B14' )
609-
610- tier , cell = current_sheet_tier [0 ][0 ], current_sheet_tier [1 ][0 ].replace ('C' , "" )
611- cell = int (cell ) - 1
612- sheet_tasks = []
613- sheet_list = [
614- 'Easy' ,
615- 'Medium' ,
616- 'Hard' ,
617- 'Elite' ,
618- 'Pets' ,
619- 'Pets' ,
620- 'Pets' ,
621- 'Extra' ,
622- 'Passive'
623- ]
624-
625- cell_range = [
626- 'A2:C137' , # Easy
627- 'A2:C160' , # Medium
628- 'A2:C184' , # Hard
629- 'A2:C165' , # Elite
630- 'A2:C35' , # Pets - Boss
631- 'A37:C44' , # Pets - Skill
632- 'A46:C55' , # Pets - Other
633- 'A2:C119' , # Extra
634- 'A2:C44' # Passive
635- ]
636-
637- task_list = [
638- tasklists .easy ,
639- tasklists .medium ,
640- tasklists .hard ,
641- tasklists .elite ,
642- tasklists .boss_pet ,
643- tasklists .skill_pet ,
644- tasklists .other_pet ,
645- tasklists .extra ,
646- tasklists .passive
647- ]
648-
649- taskdb_names = [
650- 'easyTasks' ,
651- 'mediumTasks' ,
652- 'hardTasks' ,
653- 'eliteTasks' ,
654- 'bossPetTasks' ,
655- 'skillPetTasks' ,
656- 'otherPetTasks' ,
657- 'extraTasks' ,
658- 'passiveTasks'
659- ]
660-
661- for sheet_name , cells in zip (sheet_list , cell_range ):
662- ws = google_sheet .worksheet (sheet_name )
663- tasks = ws .get (cells )
664- sheet_tasks .append (tasks )
665- if sheet_name == tier :
666- current_list = []
667- current_list .append (tasks )
668-
669- coll = mydb ['taskAccounts' ]
670- user_tasks = coll .find_one ({'username' : username })
671-
672- for sheet_task_list , tasks_lists , doc_list_names in zip (sheet_tasks , task_list , taskdb_names ):
673- if len (sheet_task_list ) == len (tasks_lists ):
674- for i , (task_sheet , task_db ) in enumerate (zip (sheet_task_list , tasks_lists ), 1 ):
675- if 'x' in task_sheet :
676- user_tasks [doc_list_names ][i - 1 ]['status' ] = "Complete"
677- coll .update_one ({'username' : username }, {'$set' : {doc_list_names : user_tasks [doc_list_names ]}})
678- task_import_logs .append ('Tasks for %s were updated!' % doc_list_names )
679- else :
680- task_import_logs .append (
681- 'Unable to update %s! Spreadsheet data differs from database!' % doc_list_names )
682-
683- if get_taskCurrent (username ) is None :
684- for i , (task ) in enumerate (current_list [0 ], 1 ):
685- if i == cell :
686- sheets_db_dict = {}
687- for i2 , (key , value ) in enumerate (zip (sheet_list , taskdb_names )):
688- sheets_db_dict [key ] = value
689- if i2 == 3 :
690- update_current = update_current_task_from_sheet (username , sheets_db_dict [tier ], i )
691- if update_current is True :
692- task_current_logs .append ('Updated current task!' )
693- break
694- else :
695- task_current_logs .append ('Current task already found!' )
696- else :
697- error = "Spreadsheet URL is not valid!"
698- return task_import_logs , task_current_logs , error
699- except Exception as e :
700- print (str (e ))
701- error = "There was a problem prcoessing the request. Contact Gerni Task on Discord."
702- return task_import_logs , task_current_logs , error
586+ # def import_spreadsheet(username, url):
587+ # def update_current_task_from_sheet(username, tier, task_id):
588+ # coll = mydb['taskAccounts']
589+ # task_check = coll.find_one({'username': username, '%s._id' % tier: task_id},
590+ # {'_id': 0, '%s.status' % tier: 1, '%s._id' % tier: 1})
591+ # task_updated = False
592+ # if task_check[tier][task_id - 1]['status'] == 'Incomplete':
593+ # task_updated = True
594+ # coll.update_one({'username': username, '%s._id' % tier: task_id},
595+ # {'$set': {'%s.$.taskCurrent' % tier: True}})
596+ # return task_updated
597+
598+ # try:
599+ # error = None
600+ # task_import_logs = []
601+ # task_current_logs = []
602+ # speadsheet_key = re.search('\/d\/(.*?)(\/|$)', url)
603+ # if speadsheet_key:
604+ # service = gspread.service_account(filename="service_account.json")
605+ # google_sheet = service.open_by_key(speadsheet_key.group(1))
606+ # info_sheet = google_sheet.worksheet("Info")
607+
608+ # current_sheet_tier = info_sheet.get('B13:B14')
609+
610+ # tier, cell = current_sheet_tier[0][0], current_sheet_tier[1][0].replace('C', "")
611+ # cell = int(cell) - 1
612+ # sheet_tasks = []
613+ # sheet_list = [
614+ # 'Easy',
615+ # 'Medium',
616+ # 'Hard',
617+ # 'Elite',
618+ # 'Pets',
619+ # 'Pets',
620+ # 'Pets',
621+ # 'Extra',
622+ # 'Passive'
623+ # ]
624+
625+ # cell_range = [
626+ # 'A2:C137', # Easy
627+ # 'A2:C160', # Medium
628+ # 'A2:C184', # Hard
629+ # 'A2:C165', # Elite
630+ # 'A2:C35', # Pets - Boss
631+ # 'A37:C44', # Pets - Skill
632+ # 'A46:C55', # Pets - Other
633+ # 'A2:C119', # Extra
634+ # 'A2:C44' # Passive
635+ # ]
636+
637+ # task_list = [
638+ # tasklists.easy,
639+ # tasklists.medium,
640+ # tasklists.hard,
641+ # tasklists.elite,
642+ # tasklists.boss_pet,
643+ # tasklists.skill_pet,
644+ # tasklists.other_pet,
645+ # tasklists.extra,
646+ # tasklists.passive
647+ # ]
648+
649+ # taskdb_names = [
650+ # 'easyTasks',
651+ # 'mediumTasks',
652+ # 'hardTasks',
653+ # 'eliteTasks',
654+ # 'bossPetTasks',
655+ # 'skillPetTasks',
656+ # 'otherPetTasks',
657+ # 'extraTasks',
658+ # 'passiveTasks'
659+ # ]
660+
661+ # for sheet_name, cells in zip(sheet_list, cell_range):
662+ # ws = google_sheet.worksheet(sheet_name)
663+ # tasks = ws.get(cells)
664+ # sheet_tasks.append(tasks)
665+ # if sheet_name == tier:
666+ # current_list = []
667+ # current_list.append(tasks)
668+
669+ # coll = mydb['taskAccounts']
670+ # user_tasks = coll.find_one({'username': username})
671+
672+ # for sheet_task_list, tasks_lists, doc_list_names in zip(sheet_tasks, task_list, taskdb_names):
673+ # if len(sheet_task_list) == len(tasks_lists):
674+ # for i, (task_sheet, task_db) in enumerate(zip(sheet_task_list, tasks_lists), 1):
675+ # if 'x' in task_sheet:
676+ # user_tasks[doc_list_names][i - 1]['status'] = "Complete"
677+ # coll.update_one({'username': username}, {'$set': {doc_list_names: user_tasks[doc_list_names]}})
678+ # task_import_logs.append('Tasks for %s were updated!' % doc_list_names)
679+ # else:
680+ # task_import_logs.append(
681+ # 'Unable to update %s! Spreadsheet data differs from database!' % doc_list_names)
682+
683+ # if get_taskCurrent(username) is None:
684+ # for i, (task) in enumerate(current_list[0], 1):
685+ # if i == cell:
686+ # sheets_db_dict = {}
687+ # for i2, (key, value) in enumerate(zip(sheet_list, taskdb_names)):
688+ # sheets_db_dict[key] = value
689+ # if i2 == 3:
690+ # update_current = update_current_task_from_sheet(username, sheets_db_dict[tier], i)
691+ # if update_current is True:
692+ # task_current_logs.append('Updated current task!')
693+ # break
694+ # else:
695+ # task_current_logs.append('Current task already found!')
696+ # else:
697+ # error = "Spreadsheet URL is not valid!"
698+ # return task_import_logs, task_current_logs, error
699+ # except Exception as e:
700+ # print(str(e))
701+ # error = "There was a problem prcoessing the request. Contact Gerni Task on Discord."
702+ # return task_import_logs, task_current_logs, error
703703
704704
705705# NOT USED only for testing purposes.
0 commit comments