You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
1.7 KiB

  1. import copy
  2. import sys
  3. from quad_dialog import message,dicter
  4. import datetime
  5. import sqlite3
  6. import pandas
  7. from decimal import Decimal as D
  8. import shutil
  9. from send2trash import send2trash
  10. import gc
  11. def test():
  12. con = sqlite3.connect('test.db')
  13. cur = con.cursor()
  14. date = '2018-08-18'
  15. # print(date)
  16. quad_links = list(row[0] for row in cur.execute('SELECT link FROM links ORDER BY id'))
  17. quad_parts_base = pandas.read_sql('SELECT * FROM names',con).to_dict('records')
  18. current = copy.deepcopy(quad_parts_base)
  19. complete = None
  20. while not complete:
  21. complete = pandas.read_sql('SELECT * FROM parts where date == "{}"'.format(date),con).to_dict('records')
  22. if not complete:
  23. reset()
  24. # print(complete)
  25. for item in current:
  26. name = item['name']
  27. link = item['link']
  28. # print(link)
  29. item['product_name'] = complete[link]['product_name']
  30. item['price'] = round(D(complete[link]['price']),2)
  31. item['time'] = complete[link]['time']
  32. print(current)
  33. bought = message(quad_parts_base,current)
  34. quad_parts_base = dicter(quad_parts_base)
  35. for key,is_purchased in bought.items():
  36. if is_purchased:
  37. # print(key)
  38. try:
  39. if quad_parts_base[key]['count'] > 1:
  40. cur.execute('UPDATE names SET count = count - 1 WHERE name == ?',(key,))
  41. else:
  42. cur.execute('UPDATE names SET purchased = 1 WHERE name == ?',(key,))
  43. except:
  44. print(quad_parts_base)
  45. con.commit()
  46. con.close()
  47. def reset():
  48. try:
  49. send2trash('test.db')
  50. except:
  51. pass
  52. shutil.copy('quadparts.db','test.db')