npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

push-all-in-one

v4.1.1

Published

Push All In One!支持 Server酱(以及 Server 酱³)、自定义邮件、钉钉机器人、企业微信机器人、企业微信应用、pushplus、iGot 、Qmsg、息知、PushDeer、Discord、OneBot、Telegram 等多种推送方式

Downloads

2,342

Readme

Push All In One!支持 Server 酱(以及 Server 酱³)、自定义邮件、钉钉机器人、企业微信机器人、企业微信应用、pushplus、iGot 、Qmsg、息知、PushDeer、Discord、OneBot、Telegram 等多种推送方式。

Push All In One! Supports multiple push methods including Server Chan (and Server Chan³), custom email, DingTalk robot, WeChat Work robot, WeChat Work application, pushplus, iGot, Qmsg, XiZhi, PushDeer, Discord, OneBot, Telegram, and more.

温馨提示:出于安全考虑, 所有 推送方式请在 服务端 使用!请勿在 客户端(网页端) 使用!

Friendly Reminder: For security reasons, all push methods should be used on the server side! Do not use them on the client side (web page)!

基于 push-all-in-one 和 hono 开发的云函数推送服务——push-all-in-cloud 。支持 nodejs/docker/vercel 等部署方式 ,可一键部署到 vercel 。

重大更新提示: push-all-in-one v4 版本不兼容 v3 及以下低版本,请查看 CHANGELOG 了解改动。

BREAKING CHANGES: push-all-in-one v4 version is not compatible with v3 and lower versions. Please refer to CHANGELOG for changes.

建议根据 TypeScript 的类型提示进行修改。

Suggest modifying according to TypeScript's type prompts.

🏠 主页

https://github.com/CaoMeiYouRen/push-all-in-one#readme

✨ Demo

https://github.com/CaoMeiYouRen/push-all-in-one/tree/master/examples

📦 依赖要求/Requirements

  • node >=18

🚀 安装/Installation

npm i push-all-in-one -S

👨‍💻 使用/Usage

所有推送方式均实现了 send(title: string, desp?: string, options?: any): 方法。

title消息标题desp消息描述options 为该推送方式的额外推送选项,具体请参考各个推送渠道的注释。

不知道如何设置配置?请前往 push-all-in-cloud 配置生成器 在线生成 push-all-in-onepush-all-in-cloud 通用配置。

调用方式举例:

import { ServerChanTurbo, ServerChanV3, CustomEmail, Dingtalk, WechatRobot, WechatApp, PushPlus, IGot, Qmsg, XiZhi, PushDeer, Discord, OneBot, Telegram, runPushAllInOne } from 'push-all-in-one'

// 通过 runPushAllInOne 统一调用
runPushAllInOne('测试推送', '测试推送', {
    type: 'ServerChanTurbo',
    config: {
        SERVER_CHAN_TURBO_SENDKEY: '',
    },
    option: {
    },
})


// Server酱·Turbo。官方文档:https://sct.ftqq.com/r/13172
const SCTKEY = 'SCTxxxxxxxxxxxxxxxxxxx'
const serverChanTurbo = new ServerChanTurbo({
    SERVER_CHAN_TURBO_SENDKEY: SCTKEY,
})
serverChanTurbo.send('你好', '你好,我很可爱 - Server酱·Turbo', {})

// 【推荐】Server酱³
// Server酱3。官方文档:https://sc3.ft07.com/doc
const SERVER_CHAN_V3_SENDKEY = 'sctpXXXXXXXXXXXXXXXXXXXXXXXX'
const serverChanV3 = new ServerChanV3({
    SERVER_CHAN_V3_SENDKEY,
})
serverChanV3.send('你好', '你好,我很可爱 - Server酱³', {})

// 【推荐】自定义邮件,基于 nodemailer 实现,官方文档: https://github.com/nodemailer/nodemailer
const customEmail = new CustomEmail({
    EMAIL_TYPE: 'text',
    EMAIL_TO_ADDRESS: '[email protected]',
    EMAIL_AUTH_USER: '[email protected]',
    EMAIL_AUTH_PASS: '123456',
    EMAIL_HOST: 'smtp.qq.com',
    EMAIL_PORT: 465,
})
customEmail.send('你好', '你好,我很可爱 - 自定义邮件', {})

// 【推荐】钉钉机器人。官方文档:https://developers.dingtalk.com/document/app/custom-robot-access
const DINGTALK_ACCESS_TOKEN = 'xxxxxxxxxxxxxxxxxx'
const DINGTALK_SECRET = 'SECxxxxxxxxxxxxxxxx'
const dingtalk = new Dingtalk({
    DINGTALK_ACCESS_TOKEN,
    DINGTALK_SECRET,
})
dingtalk.send('你好', '你好,我很可爱 - 钉钉机器人', { msgtype: 'markdown' })

// 企业微信群机器人。官方文档:https://developer.work.weixin.qq.com/document/path/91770
// 企业微信群机器人的使用需要两人以上加入企业,如果个人使用微信推送建议使用 企业微信应用+微信插件 推送。虽然需要配置的内容更多了,但是无需下载企业微信,网页端即可完成操作。
const WECHAT_ROBOT_KEY = 'xxxxxxxxxxxxxxxxxxxxxxx'
const wechatRobot = new WechatRobot({
    WECHAT_ROBOT_KEY,
})
wechatRobot.send('你好,我很可爱- 企业微信群机器人', '', { msgtype: 'text' })

// 【推荐】企业微信应用推送,官方文档:https://developer.work.weixin.qq.com/document/path/90664
// 微信插件 https://work.weixin.qq.com/wework_admin/frame#profile/wxPlugin
// 参数的介绍请参考:https://developer.work.weixin.qq.com/document/path/90665
// 支持 text 和 markdown 格式,但 markdown 格式仅可在企业微信中查看
const wechatApp = new WechatApp({
    WECHAT_APP_CORPID: 'wwxxxxxxxxxxxxxxxxxxxx',
    WECHAT_APP_AGENTID: 10001, // 请更换为自己的 AGENTID
    WECHAT_APP_SECRET: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
})
wechatApp.send('你好,我很可爱 - 企业微信应用推送', '', {
    msgtype: 'text',
    touser: '@all',
})

// pushplus 推送,官方文档:https://www.pushplus.plus/doc/
const PUSH_PLUS_TOKEN = 'xxxxxxxxxxxxxxxxxxxxx'
const pushplus = new PushPlus({ PUSH_PLUS_TOKEN })
pushplus.send('你好', '你好,我很可爱 - PushPlus', {
    template: 'html',
    channel: 'wechat',
})

// iGot 推送,官方文档:http://hellyw.com/#/
const I_GOT_KEY = 'xxxxxxxxxx'
const iGot = new IGot({ I_GOT_KEY })
iGot.send('你好', '你好,我很可爱 - iGot', {
    url: 'https://github.com/CaoMeiYouRen/push-all-in-one',
    topic: 'push-all-in-one',
})

// Qmsg 酱 推送,官方文档:https://qmsg.zendee.cn
const QMSG_KEY = 'xxxxxxxxxxxx'
const qmsg = new Qmsg({ QMSG_KEY })
qmsg.send('你好,我很可爱 - Qmsg', '', {
    type: 'send',
    qq: '123456,654321',
}) // msg:要推送的消息内容;qq:指定要接收消息的QQ号或者QQ群,多个以英文逗号分割,例如:12345,12346


// 息知 推送,官方文档:https://xz.qqoq.net/#/index
const XI_ZHI_KEY = 'xxxxxxxxxxxxx'
const xiZhi = new XiZhi({ XI_ZHI_KEY })
xiZhi.send('你好', '你好,我很可爱 - XiZhi')

// PushDeer 推送,官方文档:https://github.com/easychen/pushdeer
const PUSH_DEER_PUSH_KEY = 'xxxxxxxxxx'
const pushDeer = new PushDeer({ PUSH_DEER_PUSH_KEY })
pushDeer.send('你好', '你好,我很可爱 - PushDeer', {
    type: 'markdown',
})

// 【推荐】Discord Webhook 推送,官方文档:https://support.discord.com/hc/zh-tw/articles/228383668-%E4%BD%BF%E7%94%A8%E7%B6%B2%E7%B5%A1%E9%89%A4%E6%89%8B-Webhooks-
// [Recommended] Discord Webhook push. Official documentation: https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks
const DISCORD_WEBHOOK = 'https://discord.com/api/webhooks/xxxxxxxxxxxxxxxxxxxxxxxxxxx'
const DISCORD_USERNAME = 'My Bot'
const PROXY_URL = 'http://127.0.0.1:8101'
const discord = new Discord({ DISCORD_WEBHOOK, PROXY_URL })
// Discord 也支持以下方式添加代理地址
// Discord also supports adding proxy addresses in the following ways
// discord.proxyUrl = 'http://127.0.0.1:8101'
discord.send('你好,我很可爱 - Discord', '', {
    username: DISCORD_USERNAME,
})

// 【推荐】Telegram Bot 推送。官方文档:https://core.telegram.org/bots/api#making-requests
// [Recommended] Telegram Bot push. Official documentation: https://core.telegram.org/bots/api#making-requests
const telegram = new Telegram({
    TELEGRAM_BOT_TOKEN: '111111:xxxxxxxxxxxxxx',
    TELEGRAM_CHAT_ID: 100000,
    // PROXY_URL: 'http://127.0.0.1:8101',
})
// Telegram 也支持以下方式添加代理地址
// Telegram also supports adding proxy addresses in the following ways
// telegram.proxyUrl = 'http://127.0.0.1:8101'
telegram.send('你好,我很可爱 - Telegram', '', {
    disable_notification: true,
})

// OneBot 推送。官方文档:https://github.com/botuniverse/onebot-11
// 本项目实现的版本为 OneBot 11
// 在 mirai 环境下实现的插件版本可参考:https://github.com/yyuueexxiinngg/onebot-kotlin
const ONE_BOT_BASE_URL = 'http://127.0.0.1:5700'
const ONE_BOT_ACCESS_TOKEN = 'xxxxxxxxxxx'
const oneBot = new OneBot({ ONE_BOT_BASE_URL, ONE_BOT_ACCESS_TOKEN })
oneBot.send('你好,我很可爱 - OneBot 11', '', {
    message_type: 'private',
    user_id: 123456789,
})

更多例子请参考 examples

代理支持

| 环境变量 | 作用 | 例子 | | ----------- | ------------------------------------------ | ---------------------- | | NO_PROXY | 设置是否禁用代理 | true | | HTTP_PROXY | 设置 http/https 代理 | http://127.0.0.1:8101 | | HTTPS_PROXY | 设置 http/https 代理 | http://127.0.0.1:8101 | | SOCKS_PROXY | 通过 socks/socks5 协议设置 http/https 代理 | socks://127.0.0.1:8100 |

本项目通过环境变量来支持请求代理

// 在 nodejs 项目中可通过直接设置环境变量来设置代理
process.env.HTTP_PROXY = 'http://127.0.0.1:8101' // 当请求是 http/https 的时候走 HTTP_PROXY
process.env.HTTPS_PROXY = 'http://127.0.0.1:8101' // 当请求是 http/https 的时候走 HTTPS_PROXY,HTTPS_PROXY 优先
process.env.SOCKS_PROXY = 'socks://127.0.0.1:8100' // 当 HTTP_PROXY 设置时走 SOCKS_PROXY
// process.env.NO_PROXY = true // 设置 NO_PROXY 可禁用代理

在命令行中可手动设置环境变量

set HTTP_PROXY='http://127.0.0.1:8101' # Windows
export HTTP_PROXY='http://127.0.0.1:8101' # Linux
cross-env HTTP_PROXY='http://127.0.0.1:8101' # 通过 cross-env 这个包来跨平台

🛠️ 开发/Development

本项目采用 TypeScript 开发,使用 tsup 打包,可以完美实现类型提示和摇树优化,对于未使用到的模块,会在编译阶段去除。

npm run dev

🐛 debug

本项目使用 debug 这个包来 debug ,如果要开启调试则设置环境变量为 DEBUG=push:* 即可,例如

cross-env DEBUG=push:* NODE_ENV=development ts-node-dev test/index.test.ts # 因为一些原因该文件未上传,可自行编写测试用例

🔧 编译/Build

npm run build

🔍 Lint

npm run lint

💾 Commit

npm run commit

👤 作者/Author

CaoMeiYouRen

🤝 贡献/Contribution

欢迎 贡献、提问或提出新功能!如有问题请查看 issues page. 贡献或提出新功能可以查看contributing guide.

Welcome to contribute, ask questions or propose new features! If you have any questions, please check the issues page. For contributions or new feature proposals, please refer to the contributing guide.

💰 支持/Support

如果觉得这个项目有用的话请给一颗⭐️,非常感谢。

If you find this project useful, please give it a ⭐️. Thank you very much.

🌟 Star History

Star History Chart

📝 License

Copyright © 2022 CaoMeiYouRen. This project is MIT licensed.


This README was generated with ❤️ by cmyr-template-cli