api_user_info.py 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. from .tool.func import *
  2. def api_user_info(name = ''):
  3. with get_db_connect() as conn:
  4. curs = conn.cursor()
  5. if flask.request.method == 'POST':
  6. try:
  7. data_list = json.loads(flask.request.form.get('title_list', ''))
  8. data_list = list(set(title_list))
  9. except:
  10. data_list = [name]
  11. data_result = {}
  12. for user_name in data_list:
  13. data_result[user_name] = {}
  14. curs.execute(db_change("select data from user_set where id = ? and name = 'acl'"), [user_name])
  15. db_data = curs.fetchall()
  16. if db_data:
  17. if db_data[0][0] != 'user':
  18. curs.execute(db_change("select name from alist where name = ?"), [db_data[0][0]])
  19. if curs.fetchall():
  20. data_result[user_name]['auth'] = db_data[0][0]
  21. else:
  22. data_result[user_name]['auth'] = 1
  23. else:
  24. data_result[user_name]['auth'] = 1
  25. else:
  26. data_result[user_name]['auth'] = 0
  27. curs.execute(db_change("select title from data where title = ?"), [user_name])
  28. if curs.fetchall():
  29. data_result[user_name]['document'] = 1
  30. else:
  31. data_result[user_name]['document'] = 0
  32. return flask.jsonify(data_result)
  33. else:
  34. if flask.request.args.get('render', None):
  35. plus_d = ''
  36. plus_t = []
  37. curs.execute(db_change("update rb set ongoing = '' where end < ? and end != '' and ongoing = '1'"), [get_time()])
  38. conn.commit()
  39. plus_d = '''
  40. <table class="user_info_table">
  41. <tbody>
  42. <tr>
  43. <td>''' + load_lang('user_name') + '''</td>
  44. <td>{}</td>
  45. </tr>
  46. <tr>
  47. <td>''' + load_lang('authority') + '''</td>
  48. <td>{}</td>
  49. </tr>
  50. <tr>
  51. <td>''' + load_lang('state') + '''</td>
  52. <td>{}</td>
  53. </tr>
  54. </tbody>
  55. </table>
  56. '''
  57. curs.execute(db_change("select data from user_set where id = ? and name = 'acl'"), [name])
  58. data = curs.fetchall()
  59. if data:
  60. if data[0][0] != 'user':
  61. curs.execute(db_change("select name from alist where name = ?"), [data[0][0]])
  62. if curs.fetchall():
  63. plus_t += [data[0][0]]
  64. else:
  65. plus_t += [load_lang('member')]
  66. else:
  67. plus_t += [load_lang('member')]
  68. else:
  69. plus_t += [load_lang('normal')]
  70. if ban_check(name) == 0:
  71. plus_t += [load_lang('normal')]
  72. else:
  73. plus_t += [load_lang('blocked') + '<br>']
  74. regex_ban = 0
  75. curs.execute(db_change("select login, block, end, why from rb where band = 'regex' and ongoing = '1'"))
  76. for test_r in curs.fetchall():
  77. if re.compile(test_r[1]).search(name):
  78. plus_t[1] += load_lang('type') + ' : ' + load_lang('regex')
  79. plus_t[1] += '<br>' + load_lang('period') + ' : ' + (test_r[2] if test_r[2] != '' else load_lang('limitless'))
  80. plus_t[1] += ('<br>' + load_lang('login_able') if test_r[0] == 'O' else '')
  81. plus_t[1] += ('<br>' + load_lang('why') + ' : ' + test_r[3] if test_r[3] != '' else '')
  82. regex_ban = 1
  83. if regex_ban == 0:
  84. curs.execute(db_change("select end, login, band, why from rb where block = ? and ongoing = '1'"), [name])
  85. block_data = curs.fetchall()
  86. if block_data:
  87. plus_t[1] += load_lang('type') + ' : ' + (load_lang('band_blocked') if block_data[0][2] == 'O' else load_lang('normal'))
  88. plus_t[1] += (' (' + load_lang('login_able') + ')' if block_data[0][1] != '' else '')
  89. plus_t[1] += '<br>' + load_lang('period') + ' : ' + (block_data[0][0] if block_data[0][0] != '' else load_lang('limitless'))
  90. plus_t[1] += ('<br>' + load_lang('band_blocked') if block_data[0][2] == 'O' else '')
  91. plus_t[1] += ('<br>' + load_lang('why') + ' : ' + block_data[0][3] if block_data[0][3] != '' else '')
  92. plus_d = plus_d.format(ip_pas(name), plus_t[0], plus_t[1])
  93. return flask.jsonify({ "data" : plus_d })
  94. else:
  95. return flask.jsonify({})