2du 5 лет назад
Родитель
Сommit
5b13fcf219
5 измененных файлов с 68 добавлено и 11 удалено
  1. 4 0
      app.py
  2. 6 6
      route/edit_delete.py
  3. 11 4
      route/give_user_check.py
  4. 46 0
      route/give_user_check_delete.py
  5. 1 1
      version.json

+ 4 - 0
app.py

@@ -539,6 +539,10 @@ def login_pw_change():
 @app.route('/check/<name>')
 def give_user_check(name = None):
     return give_user_check_2(conn, name)
+    
+@app.route('/check_delete', methods=['POST', 'GET'])
+def give_user_check_delete():
+    return give_user_check_delete_2(conn)
 
 @app.route('/register', methods=['POST', 'GET'])
 def login_register():

+ 6 - 6
route/edit_delete.py

@@ -7,6 +7,10 @@ def edit_delete_2(conn, name, app_var):
     if acl_check(name) == 1:
         return re_error('/ban')
 
+    curs.execute(db_change("select title from data where title = ?"), [name])
+    if not curs.fetchall():
+        return redirect('/w/' + url_pas(name))
+
     if flask.request.method == 'POST':
         if captcha_post(flask.request.form.get('g-recaptcha-response', flask.request.form.get('g-recaptcha', ''))) == 1:
             return re_error('/error/13')
@@ -56,20 +60,16 @@ def edit_delete_2(conn, name, app_var):
 
         return redirect('/w/' + url_pas(name))
     else:
-        curs.execute(db_change("select title from data where title = ?"), [name])
-        if not curs.fetchall():
-            return redirect('/w/' + url_pas(name))
-
         return easy_minify(flask.render_template(skin_check(),
             imp = [name, wiki_set(), custom(), other2(['(' + load_lang('delete') + ')', 0])],
             data = '''
                 <form method="post">
                     ''' + ip_warring() + '''
                     <input placeholder="''' + load_lang('why') + '''" name="send" type="text">
-                    <hr class=\"main_hr\">
+                    <hr class=\"main_hr\s>
                     ''' + captcha_get() + '''
                     <button type="submit">''' + load_lang('delete') + '''</button>
                 </form>
             ''',
             menu = [['w/' + url_pas(name), load_lang('return')]]
-        ))     
+        ))

+ 11 - 4
route/give_user_check.py

@@ -117,7 +117,16 @@ def give_user_check_2(conn, name):
 
                 div += '''
                     <tr>
-                        <td><a href="/check/''' + url_pas(data[0]) + '''">''' + data[0] + '''</a></td>
+                        <td>
+                            <a href="/check/''' + url_pas(data[0]) + '''">''' + data[0] + '''</a>
+                            <a  href="/check_delete''' + \
+                                '''?name=''' + url_pas(data[0]) + \
+                                '''&ip=''' + url_pas(data[1]) + \
+                                '''&time=''' + url_pas(data[3].replace(' ', '').replace(':', '').replace('-', '')) + \
+                                '''&return_type=''' + ('0' if ip_or_user(name) == 0 else '1') + '''">
+                                (''' + load_lang('delete') + ''')
+                            </a>
+                        </td>
                         <td><a href="/check/''' + url_pas(data[1]) + '''">''' + data[1] + '''</a></td>
                         <td>''' + data[3] + '''</td>
                     </tr>
@@ -130,9 +139,7 @@ def give_user_check_2(conn, name):
                     </tbody>
                 </table>
             '''
-        else:
-            return re_error('/error/2')
-
+            
         div += next_fix(
             '/check/' + url_pas(name) + ('?plus=' + plus_id + '&num=' if plus_id else '?num='), 
             num, 

+ 46 - 0
route/give_user_check_delete.py

@@ -0,0 +1,46 @@
+from .tool.func import *
+
+def give_user_check_delete_2(conn):
+    curs = conn.cursor()
+    
+    if admin_check() != 1:
+        return re_error('/error/4')
+
+    user_id = flask.request.args.get('name', None)
+    user_ip = flask.request.args.get('ip', None)
+    
+    time = flask.request.args.get('time', None)
+    time_set = re.search(r'([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})', time)
+    if not time_set:
+        return redirect()
+    
+    time_set = time_set.groups()
+    time = time_set[0] + '-' + time_set[1] + '-' + time_set[2] + ' '
+    time += time_set[3] + ':' + time_set[4] + ':' + time_set[5]
+    
+    return_type = flask.request.args.get('return_type', '1')
+        
+    if user_id and user_ip and time:
+        if flask.request.method == 'POST':
+            curs.execute(db_change("delete from ua_d where name = ? and ip = ? and today = ?"), [user_id, user_ip, time])
+            conn.commit()
+            
+            return redirect('/check/' + url_pas(user_id if return_type == '0' else user_ip))
+        else:
+            return easy_minify(flask.render_template(skin_check(),
+                imp = [load_lang('check'), wiki_set(), custom(), other2(['(' + load_lang('delete') + ')', 0])],
+                data = '''
+                    ''' + load_lang('name') + ''' : ''' + user_id + '''
+                    <hr class="main_hr">
+                    ''' + load_lang('ip') + ''' : ''' + user_ip + '''
+                    <hr class="main_hr">
+                    ''' + load_lang('time') + ''' : ''' + time + '''
+                    <hr class="main_hr">
+                    <form method="post">
+                        <button type="submit">''' + load_lang('delete') + '''</button>
+                    </form>
+                ''',
+                menu = [['check/' + url_pas(user_id if return_type == '0' else user_ip), load_lang('return')]]
+            ))
+    else:
+        return redirect()

+ 1 - 1
version.json

@@ -1,6 +1,6 @@
 {
     "beta" : {
-        "r_ver" : "v3.2.0-stable-13 (beta-54) (dev-2021-03-05-01)",
+        "r_ver" : "v3.2.0-stable-13 (beta-55) (dev-2021-03-06-01)",
         "c_ver" : "3203400",
         "s_ver" : "11"
     }