远兮 commited on
Commit
550a205
·
1 Parent(s): d90c3f6

修改message为中文

Browse files
chatgpt-next-web/OnSalesData.py DELETED
@@ -1,5 +0,0 @@
1
- class OnSalesData:
2
- def __init__(self, currentPackage, packages):
3
- self.currentPackage = currentPackage
4
- self.packages = packages
5
-
 
 
 
 
 
 
chatgpt-next-web/service.py CHANGED
@@ -13,7 +13,6 @@ from flask import Flask, request, jsonify, Request, Response
13
  from redis import Redis
14
  from utils import nowtime
15
  import pay_package
16
- from OnSalesData import OnSalesData
17
  from ApiResponse import ApiResponse
18
  from flask_cors import CORS
19
  from mail import MyEmail
@@ -60,7 +59,7 @@ def send_verification_code_endpoint():
60
  # 保存验证码到Redis,并设置过期时间(例如,5分钟)
61
  redis.setex(email, 300, verification_code)
62
 
63
- return jsonify({'code': 0, 'message': 'Verification code sent'})
64
 
65
 
66
  # 用户注册
@@ -74,15 +73,15 @@ def register():
74
 
75
  if is_email_registered(email):
76
  return jsonify({'code': 400, 'message': '邮箱已被注册'})
 
 
 
 
77
 
78
  # 检查验证码是否匹配
79
  stored_code = redis.get(email)
80
  if stored_code is None or verification_code != stored_code.decode('utf-8'):
81
- return jsonify({'code': 400, 'message': 'Invalid verification code'})
82
-
83
- # 检查用户名是否已被注册
84
- if redis.hexists('users', username):
85
- return jsonify({'code': 400, 'message': 'Username already exists'})
86
 
87
  # 生成唯一的用户ID
88
  user_id = str(uuid.uuid4())
@@ -104,7 +103,7 @@ def register():
104
 
105
  return jsonify({
106
  'code': 0,
107
- 'message': 'Registration successful'
108
  })
109
 
110
 
@@ -118,11 +117,11 @@ def login():
118
  # 检查用户名和密码是否匹配
119
  user_data = redis.hget('users', username)
120
  if not user_data:
121
- return jsonify({'code': 400, 'message': 'Invalid username'})
122
 
123
  user_data = user_data.decode('utf-8')
124
  if password != eval(user_data)['password']:
125
- return jsonify({'code': 400, 'message': 'Invalid password'})
126
 
127
  # 生成令牌
128
  token = generate_token(eval(user_data)['user_id'], username)
@@ -136,18 +135,6 @@ def login():
136
  })
137
 
138
 
139
- # 需要验证登录状态的接口
140
- @app.route('/protected', methods=['GET'])
141
- def protected():
142
- token = parse_token(request)
143
- # 验证令牌
144
- if not validate_token(token):
145
- return jsonify({'code': 401, 'message': 'Invalid token'}), 200
146
-
147
- # 如果用户未登录,则返回未授权的响应
148
- return jsonify({'code': 401, 'message': 'Unauthorized'})
149
-
150
-
151
  @app.route('/resetPassword', methods=['POST'])
152
  def reset_password():
153
  email = request.json.get('email')
@@ -157,7 +144,7 @@ def reset_password():
157
  # 检查验证码是否匹配
158
  stored_code = redis.get(email)
159
  if stored_code is None or verification_code != stored_code.decode('utf-8'):
160
- return jsonify({'code': 400, 'message': 'Invalid verification code'})
161
 
162
  if not is_email_registered(email):
163
  return jsonify({'code': 400, 'message': '邮箱未注册'})
@@ -175,7 +162,7 @@ def logout():
175
  if not validate_token(token):
176
  # 将令牌添加到 Redis 黑名单
177
  redis.set(token, 'revoked')
178
- return jsonify({'code': 0, 'message': 'Logout successful'})
179
 
180
 
181
  @app.route('/create_order', methods=['POST'])
@@ -186,17 +173,17 @@ def create_order():
186
 
187
  # 验证令牌
188
  if not validate_token(token):
189
- return jsonify({'code': 401, 'message': 'Invalid token'})
190
 
191
  # 根据套餐ID获取套餐信息
192
  package = pay_package.get_package_by_id(package_id)
193
  if not package:
194
- return jsonify({'code': 400, 'message': 'Invalid package ID'})
195
 
196
  # 获取用户ID
197
  user_id = get_user_id_from_token(token)
198
  if not user_id:
199
- return jsonify({'code': 400, 'message': 'User not found'})
200
  # 创建订单
201
  order_id = generate_order_id()
202
  order_data = {
@@ -243,12 +230,12 @@ def order_center():
243
 
244
  # 验证令牌
245
  if not validate_token(token):
246
- return jsonify({'code': 401, 'message': 'Invalid token'})
247
 
248
  # 获取用户ID
249
  user_id = get_user_id_from_token(token)
250
  if not user_id:
251
- return jsonify({'code': 400, 'message': 'User not found'})
252
 
253
  # 获取用户的所有订单
254
  user_orders = get_user_orders(user_id)
@@ -281,12 +268,12 @@ def query_order():
281
 
282
  # 验证令牌
283
  if not validate_token(token):
284
- return jsonify({'code': 401, 'message': 'Invalid token'})
285
 
286
  # 获取用户ID
287
  user_id = get_user_id_from_token(token)
288
  if not user_id:
289
- return jsonify({'code': 400, 'message': 'User not found'})
290
 
291
  order_id = data['order_id']
292
 
@@ -295,7 +282,7 @@ def query_order():
295
  order_data = redis.hgetall(order_key)
296
 
297
  if not order_data:
298
- return jsonify({'code': 404, 'message': 'Order not found'})
299
 
300
  # 将bytes类型的键和值转换为str类型
301
  order_data_str = {
@@ -334,12 +321,12 @@ def get_user_profile():
334
 
335
  # 验证令牌
336
  if not validate_token(token):
337
- return jsonify({'code': 401, 'message': 'Invalid token'})
338
 
339
  # 获取用户ID
340
  user_id = get_user_id_from_token(token)
341
  if not user_id:
342
- return jsonify({'code': 400, 'message': 'User not found'})
343
 
344
  free_count = get_free_count(user_id)
345
  package = get_user_package(user_id)
@@ -348,7 +335,6 @@ def get_user_profile():
348
 
349
  user_package_key = f'user:{user_id}:package'
350
  expiration_seconds = redis.ttl(user_package_key)
351
- print("expiration_seconds = ", expiration_seconds, "is_package_expired = ", is_package_expired(user_id))
352
  formatted_expiration = ""
353
  if expiration_seconds > 0:
354
  expiration_datetime = (
@@ -419,66 +405,6 @@ def is_order_expired(order_data):
419
  return (current_time - created_at) >= expiration_time
420
 
421
 
422
- # 购买支付套餐
423
- @app.route('/purchase', methods=['POST'])
424
- def purchase():
425
- package_id = request.json.get('package_id')
426
- token = parse_token(request)
427
-
428
- # 验证令牌
429
- if not validate_token(token):
430
- return jsonify({'code': 401, 'message': 'Invalid token'})
431
-
432
- # 根据套餐ID获取套餐信息
433
- package = pay_package.get_package_by_id(package_id)
434
- if not package:
435
- return jsonify({'code': 400, 'message': 'Invalid package ID'})
436
-
437
- user_id = get_user_id_from_token(token)
438
- if not user_id:
439
- return jsonify({'code': 400, 'message': 'User not found'})
440
-
441
- # 检查用户是否已经支付过当前套餐
442
- if not is_package_expired(user_id) and has_purchased_package(user_id, package_id):
443
- return jsonify({'code': 400, 'message': 'Package already purchased'})
444
-
445
- # 检查如果用户已经支付了高级套餐,则不能支付比高级套餐更低级的基础套餐
446
- if not is_package_expired(user_id) and has_purchased_advanced_package(user_id) and package_id == '1':
447
- return jsonify({'code': 400, 'message': 'Cannot purchase lower level package'})
448
-
449
- # 存储用户套餐信息到Redis
450
- store_user_package(user_id, package)
451
-
452
- return jsonify({'code': 0, 'message': 'Purchase successful'})
453
-
454
-
455
- # 验证用户聊天次数
456
- @app.route('/validate', methods=['POST'])
457
- def validate():
458
- token = parse_token(request)
459
- model = request.json.get('model')
460
-
461
- # 验证令牌
462
- if not validate_token(token):
463
- return jsonify({'code': 401, 'message': 'Invalid token'})
464
-
465
- user_id = get_user_id_from_token(token)
466
-
467
- if not user_id:
468
- return jsonify({'code': 400, 'message': 'User not found'})
469
-
470
- # 获取用户套餐信息
471
- package = get_user_package(user_id)
472
- if not package and get_free_count(user_id) <= 0:
473
- return jsonify({'code': 400, 'message': '聊天次数已用完,请购买套餐'})
474
-
475
- # 检查用户聊天次数是否超过限制
476
- if exceeded_chat_limit(user_id, package, model):
477
- return jsonify({'code': 400, 'message': 'Chat limit exceeded'})
478
-
479
- return jsonify({'code': 0, 'message': 'Chat limit not exceeded'})
480
-
481
-
482
  @app.route('/v1/chat/completions', methods=['POST'])
483
  def proxy_chat_completions():
484
  token = parse_token(request)
@@ -486,12 +412,12 @@ def proxy_chat_completions():
486
 
487
  # 验证令牌
488
  if not validate_token(token):
489
- return jsonify({'code': 401, 'message': 'Invalid token'})
490
 
491
  user_id = get_user_id_from_token(token)
492
 
493
  if not user_id:
494
- return jsonify({'code': 400, 'message': 'User not found'})
495
 
496
  # 获取用户套餐信息
497
  package = get_user_package(user_id)
@@ -557,12 +483,12 @@ def handle_pick_up_free_chat_count():
557
 
558
  # 验证令牌
559
  if not validate_token(token):
560
- return jsonify({'code': 401, 'message': 'Invalid token'})
561
 
562
  user_id = get_user_id_from_token(token)
563
 
564
  if not user_id:
565
- return jsonify({'code': 400, 'message': 'User not found'})
566
 
567
  # 领取赠送的聊天次数
568
  success = pick_up_free_chat_count(user_id)
@@ -579,13 +505,13 @@ def packageOnSales():
579
 
580
  # 验证令牌
581
  if not validate_token(token):
582
- return jsonify({'code': 401, 'message': 'Invalid token'})
583
 
584
  user_id = get_user_id_from_token(token)
585
 
586
  if not user_id:
587
- return jsonify({'code': 400, 'message': 'User not found'})
588
-
589
  current_package = get_user_package(user_id)
590
  onSalesData = {
591
  'currentPackage': int(current_package.get(b'id', 0)),
@@ -787,7 +713,7 @@ def initialize_user_free_data(user_id):
787
 
788
 
789
  # 每天领取免费次数
790
- def pick_up_free_chat_count(user_id, basic_free_count = 5):
791
  free_data = get_user_free_data(user_id)
792
  if not free_data:
793
  free_data = initialize_user_free_data(user_id)
 
13
  from redis import Redis
14
  from utils import nowtime
15
  import pay_package
 
16
  from ApiResponse import ApiResponse
17
  from flask_cors import CORS
18
  from mail import MyEmail
 
59
  # 保存验证码到Redis,并设置过期时间(例如,5分钟)
60
  redis.setex(email, 300, verification_code)
61
 
62
+ return jsonify({'code': 0, 'message': '验证码已发送'})
63
 
64
 
65
  # 用户注册
 
73
 
74
  if is_email_registered(email):
75
  return jsonify({'code': 400, 'message': '邮箱已被注册'})
76
+
77
+ # 检查用户名是否已被注册
78
+ if redis.hexists('users', username):
79
+ return jsonify({'code': 400, 'message': '用户名已存在'})
80
 
81
  # 检查验证码是否匹配
82
  stored_code = redis.get(email)
83
  if stored_code is None or verification_code != stored_code.decode('utf-8'):
84
+ return jsonify({'code': 400, 'message': '验证码无效'})
 
 
 
 
85
 
86
  # 生成唯一的用户ID
87
  user_id = str(uuid.uuid4())
 
103
 
104
  return jsonify({
105
  'code': 0,
106
+ 'message': '注册成功'
107
  })
108
 
109
 
 
117
  # 检查用户名和密码是否匹配
118
  user_data = redis.hget('users', username)
119
  if not user_data:
120
+ return jsonify({'code': 400, 'message': '用户名无效'})
121
 
122
  user_data = user_data.decode('utf-8')
123
  if password != eval(user_data)['password']:
124
+ return jsonify({'code': 400, 'message': '密码错误'})
125
 
126
  # 生成令牌
127
  token = generate_token(eval(user_data)['user_id'], username)
 
135
  })
136
 
137
 
 
 
 
 
 
 
 
 
 
 
 
 
138
  @app.route('/resetPassword', methods=['POST'])
139
  def reset_password():
140
  email = request.json.get('email')
 
144
  # 检查验证码是否匹配
145
  stored_code = redis.get(email)
146
  if stored_code is None or verification_code != stored_code.decode('utf-8'):
147
+ return jsonify({'code': 400, 'message': '验证码无效'})
148
 
149
  if not is_email_registered(email):
150
  return jsonify({'code': 400, 'message': '邮箱未注册'})
 
162
  if not validate_token(token):
163
  # 将令牌添加到 Redis 黑名单
164
  redis.set(token, 'revoked')
165
+ return jsonify({'code': 0, 'message': '已登出'})
166
 
167
 
168
  @app.route('/create_order', methods=['POST'])
 
173
 
174
  # 验证令牌
175
  if not validate_token(token):
176
+ return jsonify({'code': 401, 'message': '请重新登录'})
177
 
178
  # 根据套餐ID获取套餐信息
179
  package = pay_package.get_package_by_id(package_id)
180
  if not package:
181
+ return jsonify({'code': 400, 'message': '套餐不存在'})
182
 
183
  # 获取用户ID
184
  user_id = get_user_id_from_token(token)
185
  if not user_id:
186
+ return jsonify({'code': 400, 'message': '用户不存在'})
187
  # 创建订单
188
  order_id = generate_order_id()
189
  order_data = {
 
230
 
231
  # 验证令牌
232
  if not validate_token(token):
233
+ return jsonify({'code': 401, 'message': '请重新登录'})
234
 
235
  # 获取用户ID
236
  user_id = get_user_id_from_token(token)
237
  if not user_id:
238
+ return jsonify({'code': 400, 'message': '用户不存在'})
239
 
240
  # 获取用户的所有订单
241
  user_orders = get_user_orders(user_id)
 
268
 
269
  # 验证令牌
270
  if not validate_token(token):
271
+ return jsonify({'code': 401, 'message': '请重���登录'})
272
 
273
  # 获取用户ID
274
  user_id = get_user_id_from_token(token)
275
  if not user_id:
276
+ return jsonify({'code': 400, 'message': '用户不存在'})
277
 
278
  order_id = data['order_id']
279
 
 
282
  order_data = redis.hgetall(order_key)
283
 
284
  if not order_data:
285
+ return jsonify({'code': 404, 'message': '订单无效'})
286
 
287
  # 将bytes类型的键和值转换为str类型
288
  order_data_str = {
 
321
 
322
  # 验证令牌
323
  if not validate_token(token):
324
+ return jsonify({'code': 401, 'message': '请重新登录'})
325
 
326
  # 获取用户ID
327
  user_id = get_user_id_from_token(token)
328
  if not user_id:
329
+ return jsonify({'code': 400, 'message': '用户不存在'})
330
 
331
  free_count = get_free_count(user_id)
332
  package = get_user_package(user_id)
 
335
 
336
  user_package_key = f'user:{user_id}:package'
337
  expiration_seconds = redis.ttl(user_package_key)
 
338
  formatted_expiration = ""
339
  if expiration_seconds > 0:
340
  expiration_datetime = (
 
405
  return (current_time - created_at) >= expiration_time
406
 
407
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
408
  @app.route('/v1/chat/completions', methods=['POST'])
409
  def proxy_chat_completions():
410
  token = parse_token(request)
 
412
 
413
  # 验证令牌
414
  if not validate_token(token):
415
+ return jsonify({'code': 401, 'message': '请重新登录'})
416
 
417
  user_id = get_user_id_from_token(token)
418
 
419
  if not user_id:
420
+ return jsonify({'code': 400, 'message': '用户不存在'})
421
 
422
  # 获取用户套餐信息
423
  package = get_user_package(user_id)
 
483
 
484
  # 验证令牌
485
  if not validate_token(token):
486
+ return jsonify({'code': 401, 'message': '请重新登录'})
487
 
488
  user_id = get_user_id_from_token(token)
489
 
490
  if not user_id:
491
+ return jsonify({'code': 400, 'message': '用户不存在'})
492
 
493
  # 领取赠送的聊天次数
494
  success = pick_up_free_chat_count(user_id)
 
505
 
506
  # 验证令牌
507
  if not validate_token(token):
508
+ return jsonify({'code': 401, 'message': '请重新登录'})
509
 
510
  user_id = get_user_id_from_token(token)
511
 
512
  if not user_id:
513
+ return jsonify({'code': 400, 'message': '用户不存在'})
514
+
515
  current_package = get_user_package(user_id)
516
  onSalesData = {
517
  'currentPackage': int(current_package.get(b'id', 0)),
 
713
 
714
 
715
  # 每天领取免费次数
716
+ def pick_up_free_chat_count(user_id, basic_free_count=5):
717
  free_data = get_user_free_data(user_id)
718
  if not free_data:
719
  free_data = initialize_user_free_data(user_id)