update.py 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import pymysql
  2. import json
  3. import re
  4. json_data = open('set.json').read()
  5. set_data = json.loads(json_data)
  6. conn = pymysql.connect(user = set_data['user'], password = set_data['pw'], charset = 'utf8mb4', db = set_data['db'])
  7. curs = conn.cursor(pymysql.cursors.DictCursor)
  8. db_pas = pymysql.escape_string
  9. r_ver = '2.1.2'
  10. curs.execute('select data from other where name = "version"')
  11. version = curs.fetchall()
  12. if(version):
  13. t_ver = re.sub('\.', '', version[0]['data'])
  14. t_ver = re.sub('[a-z]$', '', t_ver)
  15. r_t_ver = re.sub('\.', '', r_ver)
  16. r_t_ver = re.sub('[a-z]$', '', r_t_ver)
  17. if(int(t_ver) <= int(r_t_ver)):
  18. curs.execute("update other set data = '" + db_pas(r_ver) + "' where name = 'version'")
  19. else:
  20. curs.execute("insert into other (name, data) value ('version', '" + db_pas(r_ver) + "')")
  21. t_ver = 0
  22. curs.execute('select name from alist limit 1')
  23. getalist = curs.fetchall()
  24. if(getalist and int(t_ver) < 204):
  25. curs.execute("delete from alist where name = 'owner'")
  26. curs.execute("delete from alist where name = 'admin'")
  27. if(int(t_ver) < 202 or not getalist):
  28. curs.execute("insert into alist (name, acl) value ('owner', 'owner')")
  29. curs.execute("insert into alist (name, acl) value ('admin', 'ban')")
  30. curs.execute("insert into alist (name, acl) value ('admin', 'mdel')")
  31. curs.execute("insert into alist (name, acl) value ('admin', 'toron')")
  32. curs.execute("insert into alist (name, acl) value ('admin', 'check')")
  33. curs.execute("insert into alist (name, acl) value ('admin', 'acl')")
  34. if(int(t_ver) < 203):
  35. curs.execute('select title from topic limit 1')
  36. top_yes = curs.fetchall()
  37. if(top_yes):
  38. curs.execute('rename table topic to old_topic')
  39. curs.execute('rename table distop to old_distop')
  40. curs.execute('create table topic(id text, title text, sub text, data longtext, date text, ip text, block text, top text)')
  41. curs.execute('select * from old_topic')
  42. topic_old = curs.fetchall()
  43. if(topic_old):
  44. i = 0
  45. for move_topic in topic_old:
  46. curs.execute("select id from distop where id = '" + db_pas(move_topic['id']) + "' and title = '" + db_pas(move_topic['title']) + "' and sub = '" + db_pas(move_topic['sub']) + "'")
  47. distop = curs.fetchall()
  48. if(distop):
  49. top = 'O'
  50. else:
  51. top = ''
  52. curs.execute("insert into topic (id, title, sub, data, date, ip, block, top) value ('" + db_pas(move_topic['id']) + "', '" + db_pas(move_topic['title']) + "', '" + db_pas(move_topic['sub']) + "', '" + db_pas(move_topic['data']) + "', '" + db_pas(move_topic['date']) + "', '" + db_pas(move_topic['ip']) + "', '" + db_pas(move_topic['block']) + "', '" + db_pas(top) + "')")
  53. conn.commit()
  54. conn.close()
  55. print('종료 하려면 아무 키나 누르시오.')
  56. a = input()