#!/usr/bin/env python
# -*- coding: utf-8 -*-

#-------------------------------------------
# Beállítás:
#   Add meg a Google Alkalmazás azonosítódat:

client_id = 'A_TE_KLIENS_AZONOSITÓD!'
client_secret = 'A_TE_TITKOSÍTÁSI_KULCSOD!'
#-------------------------------------------

import sys
import oauth2
#
Token = {}

# Ha egy e-mail cím már adott hozzáférést, azt a token.csv fájlban menjük
# Formátum: e-mail cím, Refresh_Token
def token(sztring):
  token_fajl = open("token.csv","a")
  token_fajl.write(sztring + "\r\n")
  token_fajl.close()

# Token generálás
def gen_token(user,p):
  gen_token_list = ['oauth2.py', '--user='+user, '--client_id='+client_id, '--client_secret='+client_secret, '--generate_oauth2_token']
  MAINTOKEN = oauth2.other(gen_token_list)
  Token['Refresh_Token'] = MAINTOKEN[0]
  Token['Access_Token'] = MAINTOKEN[1]
  if p == True:
    print "User:",user,"\nRefresh Token:",Token['Refresh_Token'],"\nAccess Token:", Token['Access_Token']

# Token frissítés
def ref_token(user, p):
  ref_token_list = ['oauth2.py', '--user='+user, '--client_id='+client_id, '--client_secret='+client_secret, '--refresh_token='+Token['Refresh_Token']]
  MAINTOKEN = oauth2.other(ref_token_list)
  Token['Access_Token'] = MAINTOKEN[1]
  if p == True:
    print "Felhasználó:",user,"\nRefresh Token:",Token['Refresh_Token'],"\nAccess Token:", Token['Access_Token']

# Az e-mail már kapott korábban tokent? 
def r_token (user): # Ez csak akkor foglalkozik a tokennel, ha igen
  TP = False	# Token Pointer
  for i in range(len(token_lista)):
    if user == token_lista[i][0]:
      Token['Refresh_Token'] = token_lista[i][1]
      TP = True
  if TP == True:
    ref_token(user,False)
    return Token['Access_Token']
  if TP == False:
    return ''

def g_token (): # Ez ad lehetőséget új token létrehozására
  user = raw_input("Kérem adja meg az e-mail címet: ")
  TP = False	# Token Pointer
  for i in range(len(token_lista)):
    if user == token_lista[i][0]:
      Token['Refresh_Token'] = token_lista[i][1]
      TP = True
  if TP == True:
    ref_token(user,True)
  else:
    gen_token(user,True)
    token(user+','+Token['Refresh_Token'])

# Főprogram

# Forrásfájl beolvasása
token_fajl = open("token.csv","r")
forras_lista = token_fajl.readlines()
token_fajl.close()
# Adatok megfelelő formára hozása
token_lista = [] # Ebben lesznek a már meglévő tokenek
for sor in forras_lista: # Egyesevel olvas be sorokat
  sor = sor.replace("\r",'').replace("\n",'')
  adat = sor.split(',')
  token_lista.append(adat)
  
#
if __name__ == '__main__':
  if '--gen_token' in sys.argv:
    g_token()