WeChat SDK for Python

Overview
  ___       __   _______   ________  ___  ___  ________  _________  ________  ___    ___
 |\  \     |\  \|\  ___ \ |\   ____\|\  \|\  \|\   __  \|\___   ___\\   __  \|\  \  /  /|
 \ \  \    \ \  \ \   __/|\ \  \___|\ \  \\\  \ \  \|\  \|___ \  \_\ \  \|\  \ \  \/  / /
  \ \  \  __\ \  \ \  \_|/_\ \  \    \ \   __  \ \   __  \   \ \  \ \ \   ____\ \    / /
   \ \  \|\__\_\  \ \  \_|\ \ \  \____\ \  \ \  \ \  \ \  \   \ \  \ \ \  \___|\/  /  /
    \ \____________\ \_______\ \_______\ \__\ \__\ \__\ \__\   \ \__\ \ \__\ __/  / /
     \|____________|\|_______|\|_______|\|__|\|__|\|__|\|__|    \|__|  \|__||\___/ /
                                                                            \|___|/

Financial Contributors on Open Collective GitHub Actions codecov.io Documentation Status PyPI Downloads Reviewed by Hound

微信(WeChat) 公众平台第三方 Python SDK。

v1.x: 【阅读文档】 【快速入门】 master: 【阅读文档】 【快速入门】

功能特性

  1. 普通公众平台被动响应和主动调用 API
  2. 企业微信 API
  3. 微信支付 API
  4. 第三方平台代公众号调用接口 API
  5. 小程序云开发 API

安装

推荐使用 pip 进行安装:

pip install wechatpy

升级版本:

pip install -U wechatpy

使用示例

使用示例参见 examples

贡献代码

请阅读 贡献代码指南

支持项目

如果觉得本项目对您有帮助,请考虑捐赠支持项目开发

问题反馈

我们主要使用 GitHub issues 进行问题追踪和反馈。

QQ 群:176596300

wechatpy QQ 群

Contributors

Code Contributors

This project exists thanks to all the people who contribute. [Contribute].

Financial Contributors

Become a financial contributor and help us sustain our community. [Contribute]

Individuals

Organizations

Support this project with your organization. Your logo will show up here with a link to your website. [Contribute]

License

This work is released under the MIT license. A copy of the license is provided in the LICENSE file.

Comments
  • 微信开放平台

    微信开放平台

    作者可以看看有没有可能转成新的方式

    | | 原先方式 | 新方式(登录授权) | | --- | --- | --- | | 公众号是否需要提供appid和appsecret | 需要 | 不需要 | | 公众号是否需要配置服务器url和token | 需要 | 不需要 | | 可接入几个第三方开发服务 | 1个 | 5个(消息与菜单权限集只能授权给一家) |

    https://open.weixin.qq.com/cgi-bin/frame?t=home/wx_plugin_tmpl&lang=zh_CN https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&lang=zh_CN

    help wanted feature 主动调用 
    opened by iblogc 32
  • wechatpy 2.0 的一些想法

    wechatpy 2.0 的一些想法

    wehctapy 已经在我们的项目中用了几个月,确实方便了我们很多。

    但也有些用的别扭的地方。慢慢的也产生了一些想法。希望和你交流一下。

    出现此想法的原因

    • 在项目中使用时,感觉现有些接口比较难用。
    • 接口返回数据是纯 json,而非对象
    • 只支持官方操作
    • 不够对象化
    • 发布时非接口类功能缺失
    • 没有对接 python 常用框架

    改进方向:易用性功能性

    接口返回数据是纯 json,而非对象

    这在项目中还要做各种处理,这种处理放在业务中意义不大,浪费精力,适合放到本库中。提供一下接口会更好: 做法:将微信中的概念变成对象,将接口变成对象的方法,方法返回对象实例。对象实例提供各种数据格式的转化能力。

    follower_manager =   wechat_client.get_manager('fellower')
    # 获取所有关注者
    followers = follower_manager.get()
    # 获取单个关注者
    follower =   wechat_client.fellowers.get(name='nickname')
    # 修改
    follower.nickname = 'another_name'
    follower.sex = ’女'
    follower.save()
    
    shakearound_manager =   wechat_client.get_manager('shakearound')
    page_manager = shakearound_manager.get_manager('page')
    all_pages = page_manager.get()
    page = page_manager.get(page_id)
    new_page = page_manager.add(title, description, url, icon_url, mark='')
    new_page.json()
    new_page.xml()
    

    只支持官方操作

    可以在官方操作的基础上封装常用操作,这样更方便使用

    不够对象化

    wechat_client = WechatClient(app_id, app_secret)
    

    实例化之后,就可以检查wechat_client可调用的对象(底层接口),没有权限时,抛出异常; 所有操作以面向对象的方式使用,屏蔽 http 层。

    发布时非接口类功能缺失

    发布项目时,经常需要额外开发。比如验证 token,开放平台的基本测试等,可以在库中实现。节省调用者开发时间。

    没有对接 python 常用框架

    多数情况下微信对象需要本地保存,如果能对象 django ORM、SqlAlchemy ORM 等数据库模型,会大大增加我们项目的友好度。比如 Django 中

    from wechatpy.decorators import bind_model
    from wechatpy.models import Fellower
    from django.db import models
    
    @bind_model(Fellower)
    class WechatFellower(models.Model):
         name = models.CharField(...)
    

    这样就把 wechatpy 中的模型和 Django 的模型关联了。

    wechat_fellower = WechatFellower.objects.get(name='xxx')
    wechat_fellower.name = 'another_name'
    wechat_fellower.save()
    

    在完成 django 模型功能(保存到数据库)的同时,也完成了和微信接口的交互。

    下面是 wechatpy 2.0 架构: 2015-12-29 13 09 16

    1. 我们可以通过 python 内置的 http 库或者 requests 等第三方库封装对微信 http 接口的调用
    2. 在此基础上,将微信概念对象化,将接口变成这些对象的操作,并可以提供非官方操作。
    3. 提供一种机制(微信对象适配层),可以将这些对象和一些常用 python 库的数据模型关联。

    绿色部分将是新 wechatpy 对外提供的功能。当微信接口变化时,我们修改黄色部分即可。

    这个想法还不够细致。如果你对这个改进方向认可,我们可以就此多想一想​细节。

    enhancement help wanted 
    opened by hunter007 29
  • 企业号我用这代码回调没反应啊

    企业号我用这代码回调没反应啊

    from __future__ import absolute_import, unicode_literals
    from flask import Flask, request, abort, make_response
    from wechatpy.enterprise.crypto import WeChatCrypto
    from wechatpy.exceptions import InvalidSignatureException
    from wechatpy.enterprise.exceptions import InvalidCorpIdException
    from wechatpy.enterprise import parse_message, create_reply
    
    
    TOKEN = '123456'
    EncodingAESKey = ''
    CorpId = ''
    
    app = Flask(__name__)
    
    
    @app.route('/wechat', methods=['GET', 'POST'])
    def wechat():
        signature = request.args.get('msg_signature', '')
        timestamp = request.args.get('timestamp', '')
        nonce = request.args.get('nonce', '')
    
        crypto = WeChatCrypto(TOKEN, EncodingAESKey, CorpId)
        if request.method == 'GET':
            echo_str = request.args.get('echostr', '')
            try:
                echo_str = crypto.check_signature(
                    signature,
                    timestamp,
                    nonce,
                    echo_str
                )
            except InvalidSignatureException:
                abort(403)
            return echo_str
        else:
            try:
                msg = crypto.decrypt_message(
                    request.data,
                    signature,
                    timestamp,
                    nonce
                )
            except (InvalidSignatureException, InvalidCorpIdException):
                abort(403)
            msg = parse_message(msg)
            if msg.type == 'text':
                reply = create_reply(msg.content, msg).render()
            else:
                reply = create_reply('Can not handle this for now', msg).render()
            res = make_response(crypto.encrypt_message(reply, nonce, timestamp))
            res.headers['Content-Type'] = 'application/xml'
            return res
    
    
    if __name__ == '__main__':
        app.run('127.0.0.1', 5001, debug=True)
    
    bug question 
    opened by imcncer 27
  • 第三方平台API问题:component_verify_ticket

    第三方平台API问题:component_verify_ticket

    signature=c542a4b4fd72edd17d42aa7ed579877c925656aa&timestamp=1467073346&nonce=225678664&encrypt_type=aes&msg_signature=c6f76e0bdcfe547bc803f191eae24f2c788fccb2

    收到微信服务器的参数是这些,但是调用接口需要的参数:

    cache_component_verify_ticket(self, msg, signature, timestamp, nonce)
    

    和微信服务器传递过来的参数不符合,另外InfoType还有下面两种情况:

    <InfoType>unauthorized</InfoType>
    
    <InfoType>authorized</InfoType>
    

    来自微信公众平台接口说明 InfoType也有不同的类型,个人感觉需要

    from wechatpy import parse_message
    

    经过类似parse_message的处理,判断不同类型进行不同处理。

    目前接口: 直接调用返回:Error code: -40001, message: Invalid signature

    主动调用 T: 第三方平台 
    opened by zdianjiang 21
  • 微信支付接口无法创建订单

    微信支付接口无法创建订单

    部分代码:

    app_id = 'wxbbxxxxxxxxxxx'
    user_info = session.get('user_info')
    pay=WeChatPay(app_id,'7wH6oUxxxxxxxxxxxxx','133xxxxxxx'')
        try:
            result=pay.order.create('JSAPI',u'U盘A款',5800, 'http://www.abc.com/jsapi_result/',user_info['openid'])
        except Exception as e:
            current_app.logger.debug(e)
    

    每次到pay.order.create都异常,却没捕捉到东西:Error code: None, message: None

    question T: 微信支付 
    opened by openpython 20
  • 关于扫带参二维码返回“该公众号暂时无法提供服务,请稍后再试  ”的疑问

    关于扫带参二维码返回“该公众号暂时无法提供服务,请稍后再试 ”的疑问

    现象描述: 同代码在公众测试平台中扫码后能准确返回ok字段,在实际认证的服务号当中,同样返回ok字段,但是会额外显示“该公众号暂时无法提供服务,请稍后再试 ”的提示。 测试过直接返回空字段,同样有错误提示。

    @app.route('/wechat', methods=['GET', 'POST'])
    def wechat():
        signature = request.args.get('signature', '')
        timestamp = request.args.get('timestamp', '')
        nonce = request.args.get('nonce', '')
        encrypt_type = request.args.get('encrypt_type', 'raw')
        msg_signature = request.args.get('msg_signature', '')
        try:
            check_signature(TOKEN, signature, timestamp, nonce)
        except InvalidSignatureException:
            abort(403)
        if request.method == 'GET':
            echo_str = request.args.get('echostr', '')
            return echo_str
        print request
        # POST request
        if encrypt_type == 'raw':
            # plaintext mode
            msg = parse_message(request.data)
            if msg.type == 'text':
                reply = create_reply(msg.content, msg)
            elif msg.type == 'event':
                if msg.event == 'subscribe_scan' or msg.event == 'scan':
                    reply=create_reply('ok',msg)
                else:
    		 reply = create_reply('ok2', msg)
            else:
                reply = create_reply('ok3', msg)
        else:
            reply = create_reply('ok4', msg)
        return reply.render()
    if __name__ == '__main__':
        app.run('0.0.0.0', 80,debug=True, use_reloader=False)
    
    invalid question 被动响应 
    opened by amiden 19
  • 继承了 WeChatClient,但是 __new__ 并没有正确的执行

    继承了 WeChatClient,但是 __new__ 并没有正确的执行

    Hi, 我继承了 WeChatClient,重写了 init,access_token,fetch_access_token 这三个方法,但是我发现 BaseWeChatClient 的 new 并没有正确的执行,导致 api._client 为 None

    我尝试在继承的类中手动执行 WeChatClient.new 也没有用

    enhancement question 
    opened by cloverstd 17
  • 退款时报错 SSLError

    退款时报错 SSLError

    问题描述 (Description)

    调用退款功能的时候报错

    配置信息 (Environment/Version)

    • OS Mac

    • Python 3.6

    • wechatpy 1.8.13

    报错信息

    Error handling request Traceback (most recent call last): File "/Users/wuyazi/.local/share/virtualenvs/mississippi-uec03K_7/lib/python3.6/site-packages/urllib3/connectionpool.py", line 677, in urlopen chunked=chunked, File "/Users/wuyazi/.local/share/virtualenvs/mississippi-uec03K_7/lib/python3.6/site-packages/urllib3/connectionpool.py", line 381, in _make_request self._validate_conn(conn) File "/Users/wuyazi/.local/share/virtualenvs/mississippi-uec03K_7/lib/python3.6/site-packages/urllib3/connectionpool.py", line 976, in validate_conn conn.connect() File "/Users/wuyazi/.local/share/virtualenvs/mississippi-uec03K_7/lib/python3.6/site-packages/urllib3/connection.py", line 370, in connect ssl_context=context, File "/Users/wuyazi/.local/share/virtualenvs/mississippi-uec03K_7/lib/python3.6/site-packages/urllib3/util/ssl.py", line 365, in ssl_wrap_socket context.load_cert_chain(certfile, keyfile) ssl.SSLError: [SSL] PEM lib (_ssl.c:3401) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/wuyazi/.local/share/virtualenvs/mississippi-uec03K_7/lib/python3.6/site-packages/requests/adapters.py", line 449, in send timeout=timeout File "/Users/wuyazi/.local/share/virtualenvs/mississippi-uec03K_7/lib/python3.6/site-packages/urllib3/connectionpool.py", line 725, in urlopen method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2] File "/Users/wuyazi/.local/share/virtualenvs/mississippi-uec03K_7/lib/python3.6/site-packages/urllib3/util/retry.py", line 439, in increment raise MaxRetryError(_pool, url, error or ResponseError(cause)) urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='api.mch.weixin.qq.com', port=443): Max retries exceeded with url: /secapi/pay/refund (Caused by SSLError(SSLError(336445449, '[SSL] PEM lib (_ssl.c:3401)'),)) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/wuyazi/.local/share/virtualenvs/mississippi-uec03K_7/lib/python3.6/site-packages/aiohttp/web_protocol.py", line 381, in start resp = await self._request_handler(request) File "/Users/wuyazi/.local/share/virtualenvs/mississippi-uec03K_7/lib/python3.6/site-packages/aiohttp/web_app.py", line 310, in _handle resp = await handler(request) File "/Users/wuyazi/.local/share/virtualenvs/mississippi-uec03K_7/lib/python3.6/site-packages/aiohttp/web_middlewares.py", line 88, in impl return await handler(request) File "/Users/wuyazi/italki/mississippi/src/middlewares/error.py", line 11, in middleware_handler response = await handler(request) File "/Users/wuyazi/.local/share/virtualenvs/mississippi-uec03K_7/lib/python3.6/site-packages/aiohttp/web_urldispatcher.py", line 741, in _iter resp = await method() File "/Users/wuyazi/italki/mississippi/src/common/validate.py", line 31, in wrapper return await func(self, *args, **kwargs) File "/Users/wuyazi/italki/mississippi/src/apis/refund.py", line 35, in post fee_type=params.get('fee_type', 'CNY')) File "/Users/wuyazi/.local/share/virtualenvs/mississippi-uec03K_7/lib/python3.6/site-packages/wechatpy/pay/api/refund.py", line 43, in apply return self._post('secapi/pay/refund', data=data) File "/Users/wuyazi/.local/share/virtualenvs/mississippi-uec03K_7/lib/python3.6/site-packages/wechatpy/pay/base.py", line 18, in _post return self._client.post(url, **kwargs) File "/Users/wuyazi/.local/share/virtualenvs/mississippi-uec03K_7/lib/python3.6/site-packages/wechatpy/pay/init.py", line 193, in post **kwargs File "/Users/wuyazi/.local/share/virtualenvs/mississippi-uec03K_7/lib/python3.6/site-packages/wechatpy/pay/init.py", line 138, in _request **kwargs File "/Users/wuyazi/.local/share/virtualenvs/mississippi-uec03K_7/lib/python3.6/site-packages/requests/sessions.py", line 530, in request resp = self.send(prep, **send_kwargs) File "/Users/wuyazi/.local/share/virtualenvs/mississippi-uec03K_7/lib/python3.6/site-packages/requests/sessions.py", line 643, in send r = adapter.send(request, **kwargs) File "/Users/wuyazi/.local/share/virtualenvs/mississippi-uec03K_7/lib/python3.6/site-packages/requests/adapters.py", line 514, in send raise SSLError(e, request=request) requests.exceptions.SSLError: HTTPSConnectionPool(host='api.mch.weixin.qq.com', port=443): Max retries exceeded with url: /secapi/pay/refund (Caused by SSLError(SSLError(336445449, '[SSL] PEM lib (_ssl.c:3401)'),))

    question T: 微信支付 
    opened by wuyazi 14
  • Looking for maintainers

    Looking for maintainers

    You will be given write access to this repository.

    Requirements:

    1. Understand advanced Python techniques (mostly meta-programming).
    2. Understand wechatpy's internal design.
    help wanted 
    opened by messense 14
  • fix json decode

    fix json decode

    我这边有一个用户资料是这样的 {"subscribe":1,"openid":"*","nickname":"monk","sex":1,"language":"zh_CN","city":"Y'Qt","province":"SN¬","country":"","headimgurl":"http:\/\/wx.qlogo.cn\/mmopen\/ajNVdqHZLLBGnfR2C0W8cSLBbkeQASsMaSQsOKPwL9vIGr1Zen9zj9Jwibt06kpicNvH1NU7uWFZQ8rG4CrPD7uA\/0","subscribe_time":1376237570,"unionid":"*","remark":"","groupid":0,"tagid_list":[]}

    其中 province 字段最后一个字符的 unicode 是 172 ,无法正常 decode,需要加 strict 参数。

    image

    代码中其他地方也可能有这种问题。

    enhancement 主动调用 
    opened by faceair 14
  • 图文消息回复时图文个数一直在递增

    图文消息回复时图文个数一直在递增

    if isinstance(message, TextMessage):
                print u'文本消息'
                reply = ArticlesReply(message=message)
                reply.add_article({
                    'title': '猫',
                    'description': '描述文字……',
                    'image': 'http://a.hiphotos.baidu.com/image/w%3D310/sign=595a29f639c79f3d8fe1e2318aa0cdbc/43a7d933c895d1433d2c882a71f082025aaf0764.jpg',
                    'url': 'http://www.baidu.com'
                })
                return HttpResponse(reply, mimetype='application/javascript')
    

    20150514160140435

    bug 被动响应 
    opened by iblogc 14
  • 创建小程序码接口添加是否校验路径和打开的小程序版本参数

    创建小程序码接口添加是否校验路径和打开的小程序版本参数

    check_path :检 查 page 是否存在,为 true 时 page 必须是已经发布的小程序存在的页面(否则报错);为 false 时允许小程序未发布或者 page 不存在, 但 page 有数量上限(60000个)请勿滥用

    env_version : 要打开的小程序版本。正式版为 release,体验版为 trial,开发版为 develop

    opened by PPTing 0
  • 【企业微信】批量获取审批单号 get_approval_info 过滤参数少了s

    【企业微信】批量获取审批单号 get_approval_info 过滤参数少了s

    问题描述 (Description)

    【企业微信】批量获取审批单号 get_approval_info 过滤参数少了s,造成过滤失效 data = optionaldict( {"starttime": str(start_time), "endtime": str(end_time), "cursor": cursor, "size": size, "filter": filters} ) data = optionaldict( {"starttime": str(start_time), "endtime": str(end_time), "cursor": cursor, "size": size, "filters": filters} )

    bug 
    opened by gbguanbo 0
  • 【企业微信】日历/日程 更新返回无id字段导致引起KeyError

    【企业微信】日历/日程 更新返回无id字段导致引起KeyError

    问题描述 (Description)

    【企业微信】客户端调用 日历/日程 更新接口,会因为HTTP响应无id字段导致引起KeyError

    配置信息 (Environment/Version)

    • OS:Linux

    • Python:3.10

    • wechatpy:2.0.0a26

    重现步骤 (Reproducing)

    调用 企业微信客户端的 schedule.update 或 calendar.update 方法

    报错栈

    2022-08-24T03:18:41.222417319Z File "/usr/local/lib/python3.10/site-packages/wechatpy/work/client/api/calendar.py", line 65, in update 2022-08-24T03:18:41.222419103Z return self._post("oa/calendar/update", data=data, result_processor=op.itemgetter("cal_id")) 2022-08-24T03:18:41.222420855Z File "/usr/local/lib/python3.10/site-packages/wechatpy/client/api/base.py", line 18, in _post 2022-08-24T03:18:41.222422599Z return self._client.post(url, **kwargs) 2022-08-24T03:18:41.222424197Z File "/usr/local/lib/python3.10/site-packages/wechatpy/client/base.py", line 142, in post 2022-08-24T03:18:41.222426174Z return self._request(method="post", url_or_endpoint=url, **kwargs) 2022-08-24T03:18:41.222431709Z File "/usr/local/lib/python3.10/site-packages/wechatpy/client/base.py", line 90, in _request 2022-08-24T03:18:41.222433399Z return self._handle_result(res, method, url, result_processor, **kwargs) 2022-08-24T03:18:41.222435054Z File "/usr/local/lib/python3.10/site-packages/wechatpy/client/base.py", line 136, in _handle_result 2022-08-24T03:18:41.222436723Z return result if not result_processor else result_processor(result) 2022-08-24T03:18:41.222438452Z KeyError: 'cal_id'

    bug 
    opened by pppobear 1
Releases(v1.8.14)
Owner
wechatpy
微信开放平台 Python SDK
wechatpy
API RestFull web de pontos turisticos de certa região

##RESTful Web API para exposição de pontos turísticos de uma região## Propor um novo ponto turístico Moderação dos pontos turísticos cadastrados Lista

Lucas Silva 2 Jan 28, 2022
Luna Rush Auto Clicker Bot

Luna Rush Auto Clicker Bot Se o aplicativo lhe ajudar de alguma forma, uma doação para ajudar a pagar a conta de luz sempre é bem vinda ;) Wallet Smar

Walter Discher Cechinel 29 Dec 20, 2022
This is telegram bot to generate string session for using user bots. You can see live bot in https://telegram.dog/string_session_Nsbot

TG String Session Generate Pyrogram String Session Using this bot. Demo Bot: Configs: API_HASH Get from Here. API_ID Get from Here. BOT_TOKEN Telegram

Anonymous 27 Oct 28, 2022
❤️A next gen powerful telegram group manager bot for manage your groups and have fun with other cool modules

Natsuki Based on Python Telegram Bot Contributors Video Tutorial: Complete guide on deploying @TheNatsukiBot's clone on Heroku. ☆ Video by Sadew Jayas

Pawan Theekshana 8 Oct 06, 2022
A Discord token grabber executing in a Microsoft Document.

🦊 Rage 🦊 Rage is a tool written in Python3 allowing you to inject a Python3 complete Discord token grabber (Riot) script in a Microsoft Document usi

Billy 73 Nov 03, 2022
Male' Map Telegram Bot

Male' Map TelegramBot A simple TelegramBot to fetch residential addresses in Male', Maldives. The bot can be queried inline or directly. sample .env f

Naail Abdul Rahman 12 Nov 25, 2022
The official Magenta Voice Skill SDK used to develop skills for the Magenta Voice Assistant using Voice Platform!

Magenta Voice Skill SDK Development • Support • Contribute • Contributors • Licensing Magenta Voice Skill SDK for Python is a package that assists in

Telekom Open Source Software 18 Nov 19, 2022
Example of Telegram local API and aiogram 3.x

Telegram Local Full example of Telegram local application. Contains Telegram Bot API Local Telegram Bot API server based on aiogram Bot API Server ima

Oleg A. 9 Sep 16, 2022
A webhook API for Discord.

Webhook API A webhook API for Discord. Requirements requests Usage

1 Feb 08, 2022
A Python wrapper for the Dogehouse API.

Python wrapper for the dogehouse API Installation pip install dogehouse Example from dogehouse import DogeClient, event, command from dogehouse.entiti

Arthur 36 Jun 15, 2022
Ivan Telegram Userbot with python

Riviani Ramadhan Ivan-Ubot Pada Dasarnya Ivan-Ubot adalah userbot Telegram modular yang berjalan di Python3 dengan database sqlalchemy. Berbasis Paper

1 Oct 29, 2021
Discord CTF helper bot for CyberErudites

Eruditus - CTF helper bot Eruditus - CTF helper bot About Eruditus is a Discord CTF helper bot built with Python, it was initially designed to be used

Hafidh 34 Dec 30, 2022
Home Assistant custom integration for controlling Powered by Tuya (PBT) devices using Tuya Open API, officially maintained by the Tuya Developer Team.

Tuya Home Assistant Integration Home Assistant custom integration for controlling Powered by Tuya (PBT) devices using Tuya Open API, officially mainta

Tuya 704 Jan 03, 2023
🤟The VC Music Source code of @DaisyXBot ❤️ v3 Out now

DAISYXMUSIC V3 🎵 A bot that can play music on telegram group's voice call Available on telegram as @DaisyXbot Whats new 🔥 Thumbnail Support Playlist

TeamDaisyX 207 Dec 05, 2022
If you only have hash, you can still operate exchange

PTH Exchange If you only have hash, you can still operate exchange This project module is the same as my other project Exchange_SSRF, This project use

Jumbo 37 Dec 26, 2022
Robot Swerve Test Public With Python

Robot-Swerve-Test-Public The codebase for our swerve drivetrain prototype robot.

1 Jan 09, 2022
Secure Tunnel Manager

Making life easy of those who are in need of OpenSource alternative of AWS Secure Tunnel.

Suyash Chavan 1 Sep 27, 2022
Simple Discord bot which logs several events in your server

logging-bot Simple Discord bot which logs several events in your server, including: Message Edits Message Deletes Role Adds Role Removes Member joins

1 Feb 14, 2022
Change the name and pfp of ur accounts, uses tokens.txt for ur tokens.

Change the name and pfp of ur accounts, uses tokens.txt for ur tokens. Also scrapes the pfps+names from a server chosen by you. For hq tokens go to discord.gg/tokenshop or t.me/praisetelegram

cChimney 36 Dec 09, 2022
This discord bot preview user 42intra login picture.

42intra_Pic BOT This discord bot preview user 42intra login picture. created by: @YOPI#8626 Using: Python 3.9 (64-bit) (You don't need 3.9 but some fu

Zakaria Yacoubi 7 Mar 22, 2022