Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! /usr/bin/env python3
- # coding: utf-8
- from random import randint
- from hashlib import md5
- from os import path
- from sys import exit
- from datetime import datetime
- from time import time
- import sqlite3
- def create_db():
- print("\nCriando db...")
- if not path.exists('resultado.db'):
- conn = sqlite3.connect('resultado.db')
- conn.close()
- return True
- else:
- return True
- def create_log():
- if create_db():
- try:
- print("\nSe conectando ao db...")
- conn = sqlite3.connect('resultado.db')
- cur = conn.cursor()
- cur.execute("CREATE TABLE sorteios \
- (id INTEGER PRIMARY KEY AUTOINCREMENT, \
- nums_sorteio TEXT, \
- data DATE, \
- ganhador TEXT)")
- conn.close()
- return True
- except sqlite3.OperationalError:
- return True
- else:
- return False
- def ler_sorteios():
- print("Lendo sorteios anteriores...")
- if path.exists('resultado.db'):
- conn = sqlite3.connect('resultado.db')
- cur = conn.cursor()
- sql = 'SELECT * FROM sorteios'
- for row in cur.execute(sql):
- if len(row) > 2:
- print("Sorteio %d (%s) em %s, o ganhador foi \"%s\"." % (row[0], row[1], row[2], row[3]))
- else:
- print("Sorteio %d (%s) em %s, ninguém ganhou." % (row[0], row[1], row[2]))
- print("")
- else:
- print("Não há db para ler\n")
- def alterar_sorteio():
- if path.exists('resultado.db'):
- conn = sqlite3.connect('resultado.db')
- cur = conn.cursor()
- nums = str(mega_sena_nums())
- sorteio = int(input("Sorteio: "))
- cur.execute("UPDATE sorteios SET nums_sorteio = ? WHERE id = ?", (nums, sorteio))
- conn.commit()
- print("Dados atualizados com sucesso!\n")
- conn.close()
- else:
- print("Não há o que alterar\n")
- def entrar_values(nums_sorteio, ganhador=''):
- if create_log():
- if len(ganhador) <= 1:
- ganhador = 'ninguém'
- else:
- print('Nome do ganhador:', ganhador)
- data = str(datetime.fromtimestamp(int(time())).strftime('%d/%m/%Y'))
- conn = sqlite3.connect('resultado.db')
- cur = conn.cursor()
- cur.execute("INSERT INTO sorteios \
- (nums_sorteio, data, ganhador) \
- VALUES(?, ?, ?)", (nums_sorteio, data, ganhador))
- conn.commit()
- print("Dados inseridos no db\n")
- conn.close()
- else:
- print("Entrada de dados falhou\n")
- exit(1)
- def vef_hash(nums):
- nums = str(nums).encode('utf-8')
- if len(nums) > 1:
- m = md5()
- m.update(nums)
- return m.digest()
- else:
- return 0
- def mega_sena_nums():
- list_numbers = []
- for _ in range(1, 6):
- x = randint(0, 99)
- if x not in list_numbers:
- list_numbers.append(x)
- return list_numbers
- def main():
- escolha = int(input('[1] - Tentar a sorte\n[2] - Ler sorteios\n[3] - Alterar sorteio\n[4] - Sair\n[*] - '))
- print("")
- if escolha == 1:
- nums_mega_real = mega_sena_nums()
- chute = [int(input('Digite o número %d: ' % x)) for x in range(1, 7)]
- nome = str(input("Digite o seu nome: "))
- if vef_hash(chute) == vef_hash(nums_mega_real):
- entrar_values(str(nums_mega_real).replace('[', '').replace(']', ''), nome)
- print("(%s)==(%s)" % (chute, nums_mega_real))
- else:
- entrar_values(str(nums_mega_real).replace('[', '').replace(']', ''))
- print("(%s)!=(%s)" % (chute, nums_mega_real))
- print("")
- elif escolha == 2:
- ler_sorteios()
- elif escolha == 3:
- alterar_sorteio()
- else:
- exit(1)
- if __name__ == "__main__":
- while 1:
- main()
Advertisement
Add Comment
Please, Sign In to add comment