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
An advanced QR Code telegram bot with more features.

QR Code Bot A telegram qr code encode and decode bot Advanced Features 1. Database ( MongoDB ) Support 2. Broadcast Support 3. Status Command 4. Setti

Fayas Noushad 16 Nov 12, 2022
An API which returns random AOT quote everytime it's invoked

An API which returns random AOT quote everytime it's invoked

Nishant Sapkota 1 Feb 07, 2022
Bot Telegram per creare e gestire un Babbo Natale Segreto con amici ecc

Babbo Natale Segreto: Telegram Bot Bot Telegram per creare e gestire un Babbo Natale Segreto con amici ecc. Che cos'è? Il Babbo Natale Segreto è un gi

Francesco Ciociola 2 Jul 18, 2022
Easy to use phishing tool with 63 website templates. Author is not responsible for any misuse.

PyPhisher [+] Created By KasRoudra [+] Description : Ultimate phishing tool in python. Includes popular websites like facebook, twitter, instagram, gi

KasRoudra 1.1k Jan 01, 2023
Andrei 1.4k Dec 24, 2022
A Telegram Video Merge Bot by @AbirHasan2005

VideoMerge-Bot This is very simple Telegram Videos Merge Bot by @AbirHasan2005. Using FFmpeg for Merging Videos. Features: Merge Multiple Videos. User

Abir Hasan 57 Nov 12, 2022
Azure free vpn for students only! (Self hosted/No sketchy services/Fast and free)

Azpn-Azure-Free-VPN Azure free vpn for students only! (Self hosted/No sketchy services/Fast and free) This is an alternative secure way of accessing f

Harishankar Kumar 6 Mar 19, 2022
𝐀 𝐔𝐥𝐭𝐢𝐦𝐚𝐭𝐞 𝐓𝐞𝐥𝐞𝐠𝐫𝐚𝐦 𝐁𝐨𝐭 𝐅𝐨𝐫 𝐅𝐨𝐫𝐜𝐢𝐧𝐠 𝐘𝐨𝐮𝐫 𝐆𝐫𝐨𝐮𝐩 𝐌𝐞𝐦𝐛𝐞𝐫𝐬 𝐓𝐨 𝐒𝐮𝐛𝐬𝐜𝐫𝐢𝐛𝐞 𝐘𝐨𝐮𝐫 𝐓𝐞𝐥𝐞𝐠𝐫𝐚𝐦 𝐂𝐡𝐚𝐧𝐧𝐞𝐥

𝐇𝐨𝐰 𝐓𝐨 𝐃𝐞𝐩𝐥𝐨𝐲 For easiest way to deploy this Bot click on the below button 𝐌𝐚𝐝𝐞 𝐁𝐲 𝐒𝐮𝐩𝐩𝐨𝐫𝐭 𝐆𝐫𝐨𝐮𝐩 𝐒𝐨𝐮𝐫𝐜𝐞𝐬 𝐅𝐢𝐧𝐝

Mukesh Solanki 2 Jan 05, 2022
Scrape Twitter for Tweets

Backers Thank you to all our backers! 🙏 [Become a backer] Sponsors Support this project by becoming a sponsor. Your logo will show up here with a lin

Ahmet Taspinar 2.2k Jan 02, 2023
A python tool to Automate Whatsapp through Whatsapp web

This python tool is used to Automate Whatsapp through Whatsapp web. We can add number of contacts whom we want to send text messages on perticular time

5 Jul 21, 2022
A Bot To remove forwarded messages

Forward-Mess-Remover A Bot To remove forwarded messages. uses Remove forwarded messages from Group. Deploy To Heroku

SpamShield 5 Oct 14, 2022
A file-based quote bot written in Python

Let's Write a Python Quote Bot! This repository will get you started with building a quote bot in Python. It's meant to be used along with the Learnin

1 Dec 07, 2021
Twitter FakeNFT With Python

This project is a server that fetches your Twitter profile picture and applies the hexagonal transparency mask displayed on the profiles of users who have an NFT profile picture.

Mathis HAMMEL 29 Apr 23, 2022
Make a command interpreter that manages AirBnb objects

AirBnB Clone Project Description This is part 1 of our AirBnb Clone project. The purpose of this project is to make a command interpreter that manages

Firdaus H. Salim 1 Nov 14, 2021
Easily report Instagram pages and close the page

Program Features - 📌 Delete target post on Instagram. - 📌 Delete Media Target post on Instagram - 📌 Complete deletion of the target account on Inst

hack4lx 11 Nov 25, 2022
Instagram Bot posting earthquakes with magnitude greater than or equal to 3.5.

Instagram Bot posting earthquakes with magnitude greater than or equal to 3.5

Alican Yüksel 4 Aug 22, 2022
Python Business Transactions Library - ContractsPY

Python Business Transactions Library - ContractsPY Declare and define business transactions in Python. Use the contracts library to validate business

Arzu Huseynov 7 Jun 21, 2022
Man-Userbot adalah userbot Telegram modular yang berjalan di Python3 dengan database sqlalchemy

Man-Userbot Telegram Man-Userbot adalah userbot Telegram modular yang berjalan di Python3 dengan database sqlalchemy. Berbasis Paperplane dan ProjectB

DzLyz 1 Feb 12, 2022
This repository contains unofficial code reproducing Agent57

Agent57 This repository contains unofficial code reproducing Agent57, which outp

19 Dec 29, 2022