import os
import traceback

import django
import openpyxl

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'futplus.settings')
django.setup()

from accounts.models import FifaAccount
from sbc.models import SBCWorker
from accounts.link_account_bot import LinkAccountBot

if __name__ == '__main__':
    def link_account():
        log_workbook = openpyxl.Workbook()
        log_worksheet = log_workbook.active
        log_worksheet.append(['account', 'status', 'description'])
        print('start link account ... ')
        excel_file = openpyxl.load_workbook("xbox_accounts.xlsx")
        sheet = excel_file.active
        rows = list(sheet.iter_rows(values_only=True))
        for row_item in rows[1:]:
            first_email = row_item[1]
            print('email : ', first_email)
            try:
                gamer_tag = row_item[0]
            except:
                print('gamer tag not found')
                gamer_tag = None
            fifa_account = FifaAccount.objects.filter(user_name=first_email).first()
            sbc_worker, created = SBCWorker.objects.get_or_create(
                is_done=False, has_error=False, running_platform='console', fifa_account=fifa_account,
                manual_loyal=False)
            sbc_worker.must_done = False
            sbc_worker.save()
            bot_link_account = LinkAccountBot(
                sbc_worker.id, fifa_account.id, fifa_account.user_name, fifa_account.password,
                fifa_account.platform, manual_loyal=False, use_public_moves=False)
            try:
                bot_link_account.link_account(
                    support_email=row_item[5], support_password=row_item[6],
                    support_imap_host=row_item[7], gamer_tag=gamer_tag,
                    just_check_suspend=bool(row_item[8:9] or 0))
                log_worksheet.append([
                    str(fifa_account.user_name),
                    'success',
                    '',
                ])
            except Exception as error:
                log_worksheet.append([
                    str(fifa_account.user_name),
                    'error',
                    str(error),
                    str(traceback.format_exc())
                ])
            log_workbook.save('log_link_account.xlsx')
            sbc_worker.refresh_from_db()
            sbc_worker.is_done = True
            sbc_worker.save()


    link_account()

# todo : for convert this file to .exe enter bellow in terminal
# python -m PyInstaller --onefile --icon=utils\\start_up_methods_1.ico .\startup_methods_2.py