Skip to content

Jiale23/pu-client

 
 

Repository files navigation

当前状态

2024.5.8

仓库只在周三中午到次日下午开放,其他时间都是私有的,但是你可以克隆到你的仓库中,然后在你的仓库中进行修改,这样你就可以随时随地的使用了。

周三可以跳过下面配置token的步骤,直接克隆。

玛的被省团委逮到了,所以这个项目暂时停止维护,等我熬过这段时间再说吧。别问我为什么不删,我就是不删。

免责声明!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

本项目仅供学习交流使用,请勿用于商业用途,否则后果自负。

介绍

这是一个用于自动加入活动的脚本,可以自动加入你收藏的活动、你部落的活动、所有可以加入的活动。并且支持推送功能,可以通过邮件等方式推送活动信息。也可以根据你的要求自定义活动的筛选条件。 pu-client库pu-client

快速开始

使用Termux(linux类似)

安装Termux

下载arm64版本的安装包,在手机上安装后打开Termux,依次运行以下命令:

pkg install git
pkg install nodejs

检查是否安装成功

git --version
node -v

下载

git clone https://github.com/pu-client/oyasumi.git
  1. 第一次克隆将会提示失败并且要求你输入用户名和密码,这是因为你没有配置github的token。
  2. 请访问这里创建一个新的token,勾选admin:org read:packages user权限。 img.pngimg_1.png
  3. 然后在Termux中 依次输入你的用户名和token。 至此你已经成功的配置了你的github账户。

再次运行

git clone https://github.com/pu-client/oyasumi.git

进入目录

cd oyausmi

在安装依赖之前

  1. 命令行输入 bash npm login --scope=@pu-client --auth-type=legacy --registry=https://npm.pkg.github.com ,回车,根据提示登录github
  2. npm login --scope=@pu-client --auth-type=legacy --registry=https://npm.pkg.github.com
     UserName: # 你的github账号
     Password: # 之前登录的token

安装依赖

npm install

运行

npm run dev

切换账户或者重新登录

npm run login

注意事项

  1. 不要将termux放到后台,否则可能会导致程序无法正常运行。

配置文件

配置邮箱推送

文件 config.json 中的 pushing 配置项可以配置是否启用推送,以及推送的类型。 文件 push.json 中的 email 配置项可以配置邮箱推送的相关信息。

{
   "pushing": {
      "enable": true,
      "type": "email"
      // email 邮箱推送
   }
}

注册 outlook

{
   "email": {
      "email": "你的邮箱",
      "password": "密码",
      "host": "smtp-mail.outlook.com",
      //建议outlook 邮箱
      "port": 587,
      "to": "发给谁?",
      "cc": [
         "发给谁?但是别人知道我也发给了他"
      ],
      "bcc": [
         "发给谁?但是别人不知道我也发给了他"
      ]
   },
   "server_chan": {
      "sendKey": ""
   }
}

修改活动筛选条件

建议配置event.json文件,否则可能会加入奇怪的活动。例如如下配置,只会加入电子信息工程学院学生会、图书馆、轨道交通学生会、人文艺术系的活动。

{
  "filter": [
    {
      "name": "default",
      "start": "00:00",
      "end": "23:59",
      "groups": [
        "电子信息工程学院学生会",
        "图书馆",
        "轨道交通学生会",
        "人文艺术系"
      ],
      "names": [
        ".*"
      ],
      "over": false,
      "score": 0,
      "enable": true
    }
  ]
}

修改扫描间隔

你可以修改src/app.ts文件中的task_updatetask_pushingtask_keepertask_joiningtask_monitor的时间间隔,以适应你的需求。

task_update = scheduleJob('* * */0 * * *', update.bind(client));
// 扫描活动的间隔
task_pushing = scheduleJob('*/1 * * * *', pushing.bind(client));
// 保证你一直处于登录状态
task_keeper = scheduleJob('*/8 * * * * *', keeper.bind(client));
// 加入活动的扫描间隔
task_joining = setInterval(joining.bind(client), 200);
// 当一个活动满员了的扫描间隔
task_monitor = setInterval(monitor.bind(client), 200);

配置文件位于/config目录下,包含user.jsonconfig.jsonevent.json三个文件。

user.json

{
    "username": "",
    "password": "",
    "school": ""
}
属性 类型 描述
username string 用户名
password string 密码
school string 学校

config.json

{
  "event":{
    "group":false,
    "fav":true,
    "allowed":true
  },
  "pushing":{
    "enable":false,
    "type":"email"
  }
}
属性 类型 描述
event.group boolean 是否只加入你自己部落的活动
event.fav boolean 是否自动加入你收藏的活动 未实现
event.allowed boolean 是否自动加入所有可以加入的活动
pushing.enable boolean 是否启用推送
pushing.type string 推送类型(email)

event

{
  "filter":[
    {
      "name":"default",
      "start":"00:00",
      "end":"23:59",
      "groups":[],
      "over":false,
      "score":0,
      "enable":true
    }
  ]
}
属性 类型 描述
filter.name string 活动名称
filter.start string 活动开始时间
filter.end string 活动结束时间
filter.over boolean 活动时间与设置的时间是否可以有交叉
filter.groups array 只添加指定部落的活动
filter.score number 只添加分数大于所设置值的活动
filter.enable boolean 是否启用

About

芙死了

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 100.0%