Giter Club home page Giter Club logo

nianhua99 / pandoranext-helper Goto Github PK

View Code? Open in Web Editor NEW
350.0 4.0 48.0 6.75 MB

轻松使用 Pandora Next 并在网页中管理所有Token!Easily use Pandora Next and manage all your tokens online!Легко используйте Pandora Next и управляйте всеми токенами в Интернете!

License: MIT License

HTML 0.15% Dockerfile 0.45% JavaScript 1.98% TypeScript 75.87% CSS 1.91% Makefile 0.30% Go 18.98% Batchfile 0.36%
chatgpt openai pandora pandora-next

pandoranext-helper's Introduction

Pandora Helper

Static Badge Docker Pulls Static Badge

简单介绍

  • 使用Web页面管理你Pandora的所有Token!
  • 你无需了解各种Token如何获取、转换、刷新,Helper帮你处理了这一切!
  • 支持添加 账号\密码 ,一键获取Access TokenSession Token
  • 自动使用 Session Token 续期,节省Pandora额度!
  • 管理账号下的所有Share Token。支持一键刷新所有Share Token、吊销指定Share Token
  • 一键启动定时器,自动检测Token失效后刷新Access TokenShare Token
  • 在以上操作完成后,会自动更新config.json文件,并调用reload Api,直接生效 !
  • 本项目保持低侵入性,不参与管理PandoraNext程序。只是方便刷新、管理账号和各种Token。 1 2 3 4

写在最后

Star History

Star History Chart

pandoranext-helper's People

Contributors

nianhua99 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

pandoranext-helper's Issues

请配置PandoraNext相关环境变量

2023-12-23 16:56:38.682 | ERROR | app:check_require_config:105 - 请配置PandoraNext相关环境变量
2023-12-23 16:56:39.376 | ERROR | app:check_require_config:105 - 请配置PandoraNext相关环境变量
2023-12-23 16:56:40.214 | ERROR | app:check_require_config:105 - 请配置PandoraNext相关环境变量
2023-12-23 16:56:41.226 | ERROR | app:check_require_config:105 - 请配置PandoraNext相关环境变量
2023-12-23 16:56:42.630 | ERROR | app:check_require_config:105 - 请配置PandoraNext相关环境变量

大佬,我这边启动一直提示这个,但是我已经按照[README.配置了

nginx 配置问题

Hi,我有域名 helper.domain 通过 nginx 代理 PandoraNext 主服务。
我希望通过网址 https://helper.domain/helper 来访问服务,但是在我的配置中似乎不起作用。显示500 Internal Server Error

我把 在 nginx 中 rewrite 之后转发。配置如下:

location /helper/ {
                rewrite ^/helper/(.*)$  /<PREFIX>/$1 break;
                resolver 127.0.0.11 valid=5s;
                set $backend "<ip>:8182";
                proxy_pass http://$backend;

                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection $connection_upgrade;
                client_body_buffer_size 25M;
                client_max_body_size 150M;
                proxy_max_temp_file_size 0;
        }

建议在“添加新乘客”时提供shared属性

image
如图,在“添加新乘客”时无法指定shared属性,导致同步到pandora next的tokens.json后,token key的值中不含“shared”,进一步导致pandora next无法使用token key作为用户名登录。

自动刷新没有成功

今天使用发现token过期,自动刷新没有按照预期成功运行,去后台看docker有如下日志INFO:apscheduler.executors.default:Job "my_job (trigger: interval[0:01:00], next run at: 2024-01-06 14:51:01 CST)" executed successfully DEBUG:apscheduler.scheduler:Looking for jobs to run INFO:apscheduler.executors.default:Running job "my_job (trigger: interval[0:01:00], next run at: 2024-01-06 14:52:01 CST)" (scheduled at 2024-01-06 14:51:01.548330+08:00) DEBUG:apscheduler.scheduler:Next wakeup is due at 2024-01-06 14:52:01.548330+08:00 (in 59.990603 seconds) 2024-01-06 14:51:01.560 | ERROR | main.main:refresh_all_user:165 - 'user_id' 2024-01-06 14:51:01.560 | ERROR | main.main:refresh_all_user:165 - 'user_id' 2024-01-06 14:51:01.561 | ERROR | main.main:refresh_all_user:165 - 'user_id' 2024-01-06 14:51:01.561 | ERROR | main.main:refresh_all_user:165 - 'user_id' 2024-01-06 14:51:01.561 | ERROR | main.main:refresh_all_user:165 - 'user_id' 2024-01-06 14:51:01.576 | INFO | pandora_tools:fresh_setup:17 - 重载:{'code': 0, 'detail': 'success'} INFO:apscheduler.executors.default:Job "my_job (trigger: interval[0:01:00], next run at: 2024-01-06 14:52:01 CST)" executed successfully
手动点击刷新按钮以后能正常刷新。

如何关闭验证码?

看大佬说周末更新代码,关闭验证码的强制开关
想关闭验证码,大佬给提示下如何关闭,谢谢
看大佬的代码更新了,我就用docker重新部署了,没发现什么变化
是docker镜像还没有更新吗?
我是用docker部署的
希望得到解答,谢谢

增加手动session token

chatgpt账号是谷歌登录的,手动f12获取的session token然后生成fk共享,希望加个不用登录,手填session token生成fk的功能

刷新失败

楼主你好,我添加账号后刷新失败,无法获取Session Token、Access Token,docker日志也没有错误消息INFO:waitress:Serving on http://0.0.0.0:8182,不知道问题出在哪了

docker命令行启动helper后,容器不断重启

pandoranext 用docker安装在"/root/pandoranext"目录,并且把config.json放在下面的data目录里,pandoranext访问没问题。

以下命令行启动helper后,容器不断重启,是哪里没写对吗?pandoranext_domain是我的VPS的域名。

docker run -d --restart=always --name PandoraNext-Helper --net=bridge
-p 8182:8182
-v /root/pandoranext/data:/data
-e PANDORA_NEXT_DOMAIN="http://pandoranext_domain:8181"
q11391/pandora-next-helper

用nginx代理后,同步至PandoraNext 按钮 和 刷新按钮 点击就失败问题

nginx代理设置如下
location ~ ^/www11111(/?)(.*)$ {
proxy_pass http://127.0.0.1:8182/www11111/$2;
}
添加用户 定时刷新 退出登录 删除按钮 点击不会报错
但同步至PandoraNext 按钮 点击后报错见下图2
刷新按钮 点击也一直失败
只有设置成如下这种形式才能成功,请帮忙检查下问题所在?tks
PS: 不用nginx 用服务器IP:8182这俩按钮点击也会报错
location /www11111/sync {
proxy_pass http://127.0.0.1:8182/www11111/sync;
}
Snipaste_2024-01-04_16-15-16

image

【功能需求】能否增加一个针对share token管理的功能?

感谢开发者!能否增加一个针对share token管理的功能?

Share Token 管理功能

1. 一个批量管理FK的页面

  • 功能描述:在一个表格中展示所有分发注册的FK,支持单独或批量操作。
  • 表格显示内容
    FK(前几位) Access Token(后五位) 有效期至 UniqueName(加星号) 站点 限制? 隐藏用户信息?

2. FK的操作按钮

  • 更新:更新选定FK的Access Token。
  • 续期:为FK续期,可指定时间。
  • 吊销:删除选定的FK。
  • 查看详情:查看FK的完整Access Token和UniqueName等信息。
  • 导入Config文件:将FK的配置信息导入pandoranext文件。
  • 复制Share Token到剪切板:方便快捷地复制Share Token。

3. 多选FK后的按钮操作

  • 一键更新:批量更新选中的FK。
  • 一键续期:批量为选中的FK续期。
  • 一键吊销:批量删除选中的FK。
  • 一键导入Config文件:批量导入FK的配置信息。
  • 组Pool Token:将选中的多个FK组合成一个Pool Token。

4. 通过Access Token生成FK

  • 功能描述:允许用户通过Access Token直接生成FK,并保存在FK列表中。
  • 支持功能:支持将多个UniqueName用逗号分隔,便于批量处理。

[功能建议]关于添加乘客功能的一点建议

增加乘客的时候,有两点建议:

  1. 增加“备注”选项。使用场景:
    1.1 时间久了很容易忘记乘客在其他交流软件上的昵称。那为什么不用其他IM上的昵称做token key呢?因为pandora next不能使用中文作为token key,我也很心塞
    1.2 备注里写上用户到期时间,时间久了很容易忘记
  2. 能否在乘客账户上添加“有效期”选项,并禁止过期账号登录

删除乘客失败

删除乘客功能有点问题,在helper面板添加乘客-同步-删除乘客-同步之后,tokens.json里被删除的乘客还在那儿

使用nginx反代后,部分按钮功能失效

使用nginx反代,以下三项功能出现错误,帮忙看一下,感谢
1.导出聊天记录: 长时间未收到邮件,
2.清空聊天记录: 不允许使用方法,
3.用量: 无数据(见图),
viewfile

日志
2024-01-05 10:27:56.964 | INFO | pandora_tools:export_all_chat:53 - 导出聊天记录:{"status":"queued"}
2024-01-05 10:28:03.003 | INFO | pandora_tools:clear_all_chat:42 - 清空聊天记录:{"detail":"Method Not Allowed"}
2024-01-05 10:28:06.391 | INFO | share_tools:get_share_token_info:40 - 获取share_token信息结果:{'email': '[email protected]', 'expire_at': 1717171717, 'usage': {'range': '00:00 - 23:59'}, 'user_id': 'user-QtSl2jEmpz5v7HYBk0F7UED'}

abcdefghij.cn/pppp2024/clear_chat/1
{
"code": 500,
"msg": "清空失败: 清空聊天记录失败"
}

Nginx配置:

对特定服务使用8181端口

location / pppp2024/auth {
proxy_pass http://127.0.0.1:8181/pppp2024/auth;
}

假设大部分服务运行在8182端口

location ~ ^/ pppp2024/(login|sync|add-share|add-user|start_timer|kill_timer|logout|manage-users)$ {
proxy_pass http://127.0.0.1:8182/pppp2024/$1;
}

location ~ ^/ pppp2024/(refresh|delete-user)/([^/]+)$ {
proxy_pass http://127.0.0.1:8182/pppp2024/$1/$2;
}

location ~ ^/pppp2024/delete-share/([^/]+)/([^/]+)$ {
proxy_pass http://127.0.0.1:8182/pppp2024/delete-share/$1/$2;
}

location / {
proxy_pass http://127.0.0.1:8181;
}

共享和建议

image
请问一下这个共享打勾是干嘛得呀?
那个密码是不是默认*******会好一点,边上有个类似于眼睛得开关

[bug]token刷新瞬间用户登录有报错

在token刷新的瞬间,用户登录,会显示“share token not found or expired”。在刷新完成后登录自动恢复。
可以在刷新token的函数中添加延迟,更容易复现此问题。
建议:
1.刷新token的任务放到晚上三点钟以后,在用户数量较低时执行此操作
2.能否找到彻底的解决方案?
感谢~

docker报错RuntimeError: can't start new thread

Traceback (most recent call last):
File "/usr/local/bin/waitress-serve", line 8, in
sys.exit(run())
File "/usr/local/lib/python3.9/site-packages/waitress/runner.py", line 283, in run
app = resolve(module, obj_name)
File "/usr/local/lib/python3.9/site-packages/waitress/runner.py", line 218, in resolve
obj = import(module_name, fromlist=segments[:1])
File "/app/app.py", line 118, in
scheduler.start()
File "/usr/local/lib/python3.9/site-packages/flask_apscheduler/scheduler.py", line 103, in start
self._scheduler.start(paused=paused)
File "/usr/local/lib/python3.9/site-packages/apscheduler/schedulers/background.py", line 38, in start
self._thread.start()
File "/usr/local/lib/python3.9/threading.py", line 899, in start
_start_new_thread(self._bootstrap, ())
RuntimeError: can't start new thread

使用HTTPS的Pandoranext会报错。

切换到了https,就报错了,具体信息是这样的:2023-12-28 08:40:24.430 | ERROR | main.main:refresh:146 - HTTPSConnectionPool(host='XXXX', port=8181): Max retries exceeded with url: /spdb23423/api/auth/login (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1129)')))

请问这是哪里的问题啊?

刷新会直接覆盖原因tokens.json内容

我一开始在tokens.json中配置了几个直接用rt登录的,用Helper创建几个用户后发现,tokens.json内容全部被Helper覆盖了。
建议刷新的时候先读取tokens.json的内容,只刷新特定的部分而不是全局覆盖。也可以在登录的时候读取tokens.json的内容,方便一起管理

docker 0.7.0 無法使用

Arm架構,啟用報錯

ERROR:apscheduler.jobstores.default:Unable to restore job "my_job" -- removing it
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/apscheduler/util.py", line 271, in ref_to_obj
    obj = __import__(modulename, fromlist=[rest])
ModuleNotFoundError: No module named 'main.main'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/apscheduler/jobstores/sqlalchemy.py", line 148, in _get_jobs
    jobs.append(self._reconstitute_job(row.job_state))
  File "/usr/local/lib/python3.9/site-packages/apscheduler/jobstores/sqlalchemy.py", line 134, in _reconstitute_job
    job.__setstate__(job_state)
  File "/usr/local/lib/python3.9/site-packages/apscheduler/job.py", line 273, in __setstate__
    self.func = ref_to_obj(self.func_ref)
  File "/usr/local/lib/python3.9/site-packages/apscheduler/util.py", line 273, in ref_to_obj
    raise LookupError('Error resolving reference %s: could not import module' % ref)
LookupError: Error resolving reference main.main:refresh_all_user: could not import module

刷新失败

添加账号之后刷新失败,根据 #4 检查了 账号密码和潘多拉地址都没有问题。
image

报错代码是
| ERROR | main.main:refresh:218 - HTTPConnectionPool(host='0.0.0.0', port=8181): Max retries exceeded with url: /1z2x3c4v/api/auth/login (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x000001EB2C549890>: Failed to establish a new connection: [WinError 10049] 在其上下文中,该请求的地址无效。'))

点击登录一直在等待

CleanShot 2024-01-11 at 14 34 47@2x
如图所示,点击之后一直在等待,请问这个是什么原因,看docker日志也没有打印

新增用户失败

容器日志

DEBUG:apscheduler.scheduler:No jobs; waiting until a job is added
INFO:waitress:Serving on http://0.0.0.0:8182
2023-12-27 17:13:47.465 | ERROR    | main.main:refresh:146 - Expecting value: line 1 column 1 (char 0)
ERROR:app:Exception on /openchat1227/sync [GET]
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/requests/models.py", line 971, in json
    return complexjson.loads(self.text, **kwargs)
  File "/usr/local/lib/python3.9/json/__init__.py", line 346, in loads
    return _default_decoder.decode(s)
  File "/usr/local/lib/python3.9/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/local/lib/python3.9/json/decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1455, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 869, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 867, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 852, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
  File "/usr/local/lib/python3.9/site-packages/flask_login/utils.py", line 290, in decorated_view
    return current_app.ensure_sync(func)(*args, **kwargs)
  File "/app/main/main.py", line 293, in sync
    sync_pandora()
  File "/app/main/main.py", line 286, in sync_pandora
    pandora_tools.fresh_setup()
  File "/app/pandora_tools.py", line 17, in fresh_setup
    logger.info("重载:{}", response.json())
  File "/usr/local/lib/python3.9/site-packages/requests/models.py", line 975, in json
    raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2023-12-27 17:14:09.734 | ERROR    | main.main:refresh:146 - Expecting value: line 1 column 1 (char 0)
2023-12-27 17:15:35.211 | ERROR    | main.main:refresh:146 - Expecting value: line 1 column 1 (char 0)
2023-12-27 17:17:33.979 | ERROR    | main.main:refresh:146 - Expecting value: line 1 column 1 (char 0)
2023-12-27 17:19:55.887 | ERROR    | main.main:refresh:146 - Expecting value: line 1 column 1 (char 0)

建议账号管理增加一个plus的checkbox

建议账号管理增加一个plus的checkbox,每次刷新完都要找到对应的账号再手动去改token配置文件再重启pandora next。新版界面还真挺好看的,但也建议屏蔽掉未生效的按钮

更到最新进不去了

Internal Server Error

The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.

昨天部署完可用,今天更新后,login页面正常,输入密码后manage-users页面报错。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.