예제 #1
0
def delete_all():
    
    credentials_files = os.listdir(datas.credentials_path) 

    print(str(len(credentials_files)))
    for cre in credentials_files:
        try:
            id = cre.split('_')[1].split('.')[0]
            store = credentials_mgr.get_storage(id)
            service = credentials_mgr.get_service(store)
            credentials_mgr.delete_all_files(service)
        except Exception as e:
            print(e)
            pass
            

    return 'del all'
예제 #2
0
def redirect_url():

    group_info = None
    cre_obj = None
    store = None

    try:
        error = request.args.get('error', None)
        if error != None:
            return error

        id = request.args.get('state', None)
        if id == None:
            return 'No Id'

        store, group_info, cre_obj  = credentials_mgr.make_storage(id)

        flow = client.flow_from_clientsecrets(CLIENT_SECRET_FILE,
                                   scope=SCOPES,
                                   redirect_uri='%s/redirect_url'% SERVER_URL.strip())
        auth_code = request.args.get('code',None)
        credentials = flow.step2_exchange(auth_code)

        store.put(credentials)

        service = credentials_mgr.get_service(store)
        credentials_mgr.delete_all_files(service) # test code
        folder = credentials_mgr.create_public_folder(service, 'jigsaw')

        cre_dic = json.loads(credentials.to_json())
        cre_dic['jigsaw_folder_id'] = folder['id']
        cre_str = json.dumps(cre_dic)

        f = open(datas.credentials_path + '%s' % datas.credential_dic[id],'w') 
        f.write(cre_str)
        f.close()

    except Exception as error:
        print(error)
        try:
            cre_obj.set_recovery_wait_state()
            cre_obj.set_id_credentials_name('','')

            end_group_info = datas.credentials_list[-1]
            if group_info.get_group_alphabet() == end_group_info.group_alphabet_:
                state = datas.CredentialsInfo.STATE_RECOVERY_WAIT
                for cre in end_group_info.credentials_list:
                    if cre.get_state() == datas.CredentialsInfo.STATE_USABLE:
                        state = cre.get_state
                        break
                if state == datas.CredentialsInfo.STATE_USABLE:
                    datas.credentials_list.pop()
        except Exception as e:
            pass

        try:
            os.remove(datas.credentials_path + datas.credential_dic[id])
        except:
            pass
        try:
            del datas.credential_dic[id]
        except:
            pass

        return render_template('failed_donation.html')

    print('id : ' + id + ' credentials name : ' + store._filename.split('/')[-1])
    cre_obj.set_id_credentials_name(id, store._filename.split('/')[-1])
    if cre_obj.get_state() == datas.CredentialsInfo.STATE_RECOVERY_WAIT:
        fp = open('./recover_list.txt', 'a')
        fp.write(store._filename.rsplit('/',1)[-1] + '\n')
        fp.close()
        cre_obj.set_recovering_state()
        git_manager.recover_add()

    '''
    log = 'donate_' + id + '\n'
    f = open('./log.txt', 'a')
    f.write(log)
    f.close()
    datas.log_list.append(log)
    print(datas.log_list)
    '''
    
    group_info.compute_group_state()
    return render_template('donation_result.html')