Skip to content

Commit 9b533f2

Browse files
authored
Revert "migrate db take 2"
1 parent cf2d7b9 commit 9b533f2

1 file changed

Lines changed: 118 additions & 118 deletions

File tree

task_database.py

Lines changed: 118 additions & 118 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import random
2+
import gspread
23
import re
34
from math import floor
45
import tasklists
@@ -496,7 +497,6 @@ def manual_revert_tasks(username, tier, task_id):
496497

497498

498499
'''
499-
DEPRECATED - No replacement
500500
import_spreadsheet:
501501
502502
The import_spreadsheet function, Imports a spreadsheet into the database.
@@ -516,123 +516,123 @@ def manual_revert_tasks(username, tier, task_id):
516516
list: each element is a str: of the tier import status.
517517
518518
'''
519-
# def import_spreadsheet(username, url):
520-
# def update_current_task_from_sheet(username, tier, task_id):
521-
# coll = mydb['taskAccounts']
522-
# task_check = coll.find_one({'username': username, '%s._id' % tier: task_id},
523-
# {'_id': 0, '%s.status' % tier: 1, '%s._id' % tier: 1})
524-
# task_updated = False
525-
# if task_check[tier][task_id - 1]['status'] == 'Incomplete':
526-
# task_updated = True
527-
# coll.update_one({'username': username, '%s._id' % tier: task_id},
528-
# {'$set': {'%s.$.taskCurrent' % tier: True}})
529-
# return task_updated
530-
531-
# try:
532-
# error = None
533-
# task_import_logs = []
534-
# task_current_logs = []
535-
# speadsheet_key = re.search('\/d\/(.*?)(\/|$)', url)
536-
# if speadsheet_key:
537-
# service = gspread.service_account(filename="service_account.json")
538-
# google_sheet = service.open_by_key(speadsheet_key.group(1))
539-
# info_sheet = google_sheet.worksheet("Info")
540-
541-
# current_sheet_tier = info_sheet.get('B13:B14')
542-
543-
# tier, cell = current_sheet_tier[0][0], current_sheet_tier[1][0].replace('C', "")
544-
# cell = int(cell) - 1
545-
# sheet_tasks = []
546-
# sheet_list = [
547-
# 'Easy',
548-
# 'Medium',
549-
# 'Hard',
550-
# 'Elite',
551-
# 'Pets',
552-
# 'Pets',
553-
# 'Pets',
554-
# 'Extra',
555-
# 'Passive'
556-
# ]
557-
558-
# cell_range = [
559-
# 'A2:C137', # Easy
560-
# 'A2:C160', # Medium
561-
# 'A2:C184', # Hard
562-
# 'A2:C165', # Elite
563-
# 'A2:C35', # Pets - Boss
564-
# 'A37:C44', # Pets - Skill
565-
# 'A46:C55', # Pets - Other
566-
# 'A2:C119', # Extra
567-
# 'A2:C44' # Passive
568-
# ]
569-
570-
# task_list = [
571-
# tasklists.easy,
572-
# tasklists.medium,
573-
# tasklists.hard,
574-
# tasklists.elite,
575-
# tasklists.boss_pet,
576-
# tasklists.skill_pet,
577-
# tasklists.other_pet,
578-
# tasklists.extra,
579-
# tasklists.passive
580-
# ]
581-
582-
# taskdb_names = [
583-
# 'easyTasks',
584-
# 'mediumTasks',
585-
# 'hardTasks',
586-
# 'eliteTasks',
587-
# 'bossPetTasks',
588-
# 'skillPetTasks',
589-
# 'otherPetTasks',
590-
# 'extraTasks',
591-
# 'passiveTasks'
592-
# ]
593-
594-
# for sheet_name, cells in zip(sheet_list, cell_range):
595-
# ws = google_sheet.worksheet(sheet_name)
596-
# tasks = ws.get(cells)
597-
# sheet_tasks.append(tasks)
598-
# if sheet_name == tier:
599-
# current_list = []
600-
# current_list.append(tasks)
601-
602-
# coll = mydb['taskAccounts']
603-
# user_tasks = coll.find_one({'username': username})
604-
605-
# for sheet_task_list, tasks_lists, doc_list_names in zip(sheet_tasks, task_list, taskdb_names):
606-
# if len(sheet_task_list) == len(tasks_lists):
607-
# for i, (task_sheet, task_db) in enumerate(zip(sheet_task_list, tasks_lists), 1):
608-
# if 'x' in task_sheet:
609-
# user_tasks[doc_list_names][i - 1]['status'] = "Complete"
610-
# coll.update_one({'username': username}, {'$set': {doc_list_names: user_tasks[doc_list_names]}})
611-
# task_import_logs.append('Tasks for %s were updated!' % doc_list_names)
612-
# else:
613-
# task_import_logs.append(
614-
# 'Unable to update %s! Spreadsheet data differs from database!' % doc_list_names)
615-
616-
# if get_taskCurrent(username) is None:
617-
# for i, (task) in enumerate(current_list[0], 1):
618-
# if i == cell:
619-
# sheets_db_dict = {}
620-
# for i2, (key, value) in enumerate(zip(sheet_list, taskdb_names)):
621-
# sheets_db_dict[key] = value
622-
# if i2 == 3:
623-
# update_current = update_current_task_from_sheet(username, sheets_db_dict[tier], i)
624-
# if update_current is True:
625-
# task_current_logs.append('Updated current task!')
626-
# break
627-
# else:
628-
# task_current_logs.append('Current task already found!')
629-
# else:
630-
# error = "Spreadsheet URL is not valid!"
631-
# return task_import_logs, task_current_logs, error
632-
# except Exception as e:
633-
# print(str(e))
634-
# error = "There was a problem prcoessing the request. Contact Gerni Task on Discord."
635-
# return task_import_logs, task_current_logs, error
519+
def import_spreadsheet(username, url):
520+
def update_current_task_from_sheet(username, tier, task_id):
521+
coll = mydb['taskAccounts']
522+
task_check = coll.find_one({'username': username, '%s._id' % tier: task_id},
523+
{'_id': 0, '%s.status' % tier: 1, '%s._id' % tier: 1})
524+
task_updated = False
525+
if task_check[tier][task_id - 1]['status'] == 'Incomplete':
526+
task_updated = True
527+
coll.update_one({'username': username, '%s._id' % tier: task_id},
528+
{'$set': {'%s.$.taskCurrent' % tier: True}})
529+
return task_updated
530+
531+
try:
532+
error = None
533+
task_import_logs = []
534+
task_current_logs = []
535+
speadsheet_key = re.search('\/d\/(.*?)(\/|$)', url)
536+
if speadsheet_key:
537+
service = gspread.service_account(filename="service_account.json")
538+
google_sheet = service.open_by_key(speadsheet_key.group(1))
539+
info_sheet = google_sheet.worksheet("Info")
540+
541+
current_sheet_tier = info_sheet.get('B13:B14')
542+
543+
tier, cell = current_sheet_tier[0][0], current_sheet_tier[1][0].replace('C', "")
544+
cell = int(cell) - 1
545+
sheet_tasks = []
546+
sheet_list = [
547+
'Easy',
548+
'Medium',
549+
'Hard',
550+
'Elite',
551+
'Pets',
552+
'Pets',
553+
'Pets',
554+
'Extra',
555+
'Passive'
556+
]
557+
558+
cell_range = [
559+
'A2:C137', # Easy
560+
'A2:C160', # Medium
561+
'A2:C184', # Hard
562+
'A2:C165', # Elite
563+
'A2:C35', # Pets - Boss
564+
'A37:C44', # Pets - Skill
565+
'A46:C55', # Pets - Other
566+
'A2:C119', # Extra
567+
'A2:C44' # Passive
568+
]
569+
570+
task_list = [
571+
tasklists.easy,
572+
tasklists.medium,
573+
tasklists.hard,
574+
tasklists.elite,
575+
tasklists.boss_pet,
576+
tasklists.skill_pet,
577+
tasklists.other_pet,
578+
tasklists.extra,
579+
tasklists.passive
580+
]
581+
582+
taskdb_names = [
583+
'easyTasks',
584+
'mediumTasks',
585+
'hardTasks',
586+
'eliteTasks',
587+
'bossPetTasks',
588+
'skillPetTasks',
589+
'otherPetTasks',
590+
'extraTasks',
591+
'passiveTasks'
592+
]
593+
594+
for sheet_name, cells in zip(sheet_list, cell_range):
595+
ws = google_sheet.worksheet(sheet_name)
596+
tasks = ws.get(cells)
597+
sheet_tasks.append(tasks)
598+
if sheet_name == tier:
599+
current_list = []
600+
current_list.append(tasks)
601+
602+
coll = mydb['taskAccounts']
603+
user_tasks = coll.find_one({'username': username})
604+
605+
for sheet_task_list, tasks_lists, doc_list_names in zip(sheet_tasks, task_list, taskdb_names):
606+
if len(sheet_task_list) == len(tasks_lists):
607+
for i, (task_sheet, task_db) in enumerate(zip(sheet_task_list, tasks_lists), 1):
608+
if 'x' in task_sheet:
609+
user_tasks[doc_list_names][i - 1]['status'] = "Complete"
610+
coll.update_one({'username': username}, {'$set': {doc_list_names: user_tasks[doc_list_names]}})
611+
task_import_logs.append('Tasks for %s were updated!' % doc_list_names)
612+
else:
613+
task_import_logs.append(
614+
'Unable to update %s! Spreadsheet data differs from database!' % doc_list_names)
615+
616+
if get_taskCurrent(username) is None:
617+
for i, (task) in enumerate(current_list[0], 1):
618+
if i == cell:
619+
sheets_db_dict = {}
620+
for i2, (key, value) in enumerate(zip(sheet_list, taskdb_names)):
621+
sheets_db_dict[key] = value
622+
if i2 == 3:
623+
update_current = update_current_task_from_sheet(username, sheets_db_dict[tier], i)
624+
if update_current is True:
625+
task_current_logs.append('Updated current task!')
626+
break
627+
else:
628+
task_current_logs.append('Current task already found!')
629+
else:
630+
error = "Spreadsheet URL is not valid!"
631+
return task_import_logs, task_current_logs, error
632+
except Exception as e:
633+
print(str(e))
634+
error = "There was a problem prcoessing the request. Contact Gerni Task on Discord."
635+
return task_import_logs, task_current_logs, error
636636

637637

638638
# NOT USED only for testing purposes.

0 commit comments

Comments
 (0)