精华内容
下载资源
问答
  • 聊天内容关键词触发服务。 对话式服务。 依赖 python2.7.x itchat 简单使用 mybot.py import chatbot botman = chatbot.Chatbot() @botman.listen('你好') def hello(): return '你好' if __name__ == "__...

    介绍

    chatbot是我个人开发的一个python微信服务框架,基于itchat进行二次开发。

    适用场景

    1. 聊天内容关键词触发服务。
    2. 对话式服务。

    依赖

    • python2.7.x
    • itchat

    简单使用

    mybot.py

    import chatbot
    
    botman = chatbot.Chatbot()
    
    @botman.listen('你好')
    def hello():
        return '你好'
    
    if __name__ == "__main__":
        botman.run()
    
    python2 mybot.py
    

    itchat会抓取登录二维码,使用默认的图片浏览器弹出窗口,如果是在Windows、Ubuntu或者MacOS等桌面系统,弹出图片后使用微信扫描二维码登录;如果是在命令行系统下,更改配置使二维码输出到终端进行登录:
    mybot_for_cli.py

    import chatbot
    
    conf = {
    	'enableCmdQR': True
    }
    botman = chatbot.Chatbot()
    
    @botman.listen('你好')
    def hello():
        return '你好'
    
    if __name__ == "__main__":
        botman.run()
    

    如果二维码显示不全,一般是系统编码缘故,则修改enableCmdQR值为2即可。

    功能演示


    chatbot监听私聊聊天内容中的你好关键字并回复你好

    高级应用

    表情包机器人
    监听我要表情包关键字随机抓取一张表情包并返回给用户,可以在群聊、私聊中使用,设置了监听本人、好友、群友的聊天内容,群聊中使用需要@本人,演示效果如下:

    项目代码

    查看源代码和文档获取更多使用方法介绍。
    chatbot

    展开全文
  • 微信新玩法!这些关键词触发表情雨

    千次阅读 多人点赞 2021-02-11 21:38:41
    特别的年,微信也上线了特别的彩蛋,如关键词触发表情雨的彩蛋和契合春节氛围的“烟花”表情,视频号直播连麦发拜年红包和“点亮2021”虚拟星空许愿活动,营造浓郁的喜庆氛围,一同度过有趣又暖心的春节。...

    本文转载自腾讯网,牛年春节将至,作为疫情防护下的第二个春节,防疫依然是今年春节的重中之重。今年,很多同胞选择“就地过年”,对亲朋好友的思念也更为浓烈。特别的年,微信也上线了特别的彩蛋,如关键词触发表情雨的彩蛋和契合春节氛围的“烟花”表情,视频号直播连麦发拜年红包和“点亮2021”虚拟星空许愿活动,营造浓郁的喜庆氛围,一同度过有趣又暖心的春节。

    表情雨成春节彩蛋“保留节目”,牛年关键词提前曝光

    触发关键词下一场表情雨传递春节美好祝愿,已经是每年春节期间微信用户的“保留节目”。据微信团队透露,春节期间用户发送的拜年祝福中包含以下关键词即可触发表情雨:牛年大吉、金牛贺岁、喜气牛牛、牛转钱坤、恭喜发财、财源滚滚、招财进宝、谢谢老板。除了往年常规的下表情雨,牛年的表情雨中还有机会触发红包封面彩蛋,用户有机会通过表情雨领取红包封面,领取成功后即可免费在3个月内无限次使用。

    红包封面定制方,无论是企业账号还是个人账号,在电脑端微信红包封面开放平台进行定制,满足一定条件,都可以通过表情雨彩蛋发放红包封面。其中视频号个人创作者定制数量超过1000个,企业账号单次购买的红包封面数量不少于10万个,即可在购买和发放红包封面环节,选择参与限时活动:微信表情雨。成功定制后,就有机会通过表情雨福袋,将该红包封面发放给用户,从而获得更高的曝光。

    拜年红包迎来丰富新玩法,个人可免费定制红包封面赠亲友

    春节期间,很多微信用户也喜欢发送拜年红包来增添年味,传达自己的祝福。而2020年春节前上线的红包封面,今年也和视频号能力相结合,带来了更丰富的新玩法。

    除各大品牌和机构可定制发放红包封面外,红包封面开放平台也支持视频号个人创作者定制专属红包封面,其中个人定制专属红包封面仅需满足创建视频号和发表一条视频并获赞10个的条件,即可免费制作一款红包封面并赠送给10个好友使用,几乎是人人均可定制的红包封面。

    此外,视频号直播也支持发红包到指定群组,群内用户会收到直播卡片及“主播的直播间发了一个红包”提醒,用户点击直播卡片进入直播间后即可领取红包,方便主播向观众派发福利,传递祝福。

    8.0版本烟花表情成“新宠”,春节前还上线“鞭炮”表情

    微信8.0上线以来,“炸弹”“庆祝”等全屏表情引发了用户的创作热潮,其中“烟花“表情更是以契合喜庆氛围成为了广大用户微信拜年的“气氛组”,不少用户纷纷发挥了丰富的想象力和创造力在微信里放起了“烟花”。春节前,微信还上线了“鞭炮”表情,方便微信用户在微信里“燃放烟花爆竹”欢度新春。

    现在,微信用户可以通过更换合适的聊天背景图如演出现场图、地标建筑图和合照等,通过发送“烟花”表情在微信内举办一场低碳环保又赏心悦目的“烟花大赏”。同时,微信用户也可以将自己举办的“烟花大赏”以录屏的形式,带上 #2021一起看烟花 发布视频号,和其他亲朋好友一同分享。

    视频号上线“点亮2021 ” 虚拟星空直播,参与许愿可免费做公益

    春节将至,微信团队还发起了“点亮2021”虚拟星空直播活动,用户搜索“点亮2021”后即可进入视频号直播间,轻触直播间右下角的“许愿”可选择星空里的一个位置参与许愿。用户许愿成功即可点亮星空里的一颗星星,并获得“福”字状态,还有机会让腾讯基金替用户为公益项目配捐1元。

    “此心安处是吾乡”,尽管今年不少人选择“就地过年”,无法亲自在父母亲人面前送出新春祝福,但通过微信的表情雨、拜年红包、“烟花”表情和“点亮2021” 虚拟星空直播等春节彩蛋和活动,广大用户依然可以通过微信在线表达自己对亲朋好友的思念,传达特别的祝福。

    END

    来源:中国青年网

    值班编辑:李艺

    展开全文
  • 我想实现点击公众号菜单,然后自动触发设置好的某个关键词,然后自动回复相关内容(带连接)。
  • 仿微信彩蛋,触发某些关键词时很多图片下落的动画 参考文章 基于: 1.修复初始位置异常的问题 2.通过AnimatorEndListener监听动画结束事件 3.删除无用代码,增加部分注释 数量30个 初始位置随机整个屏幕 下降速度随机 ...
  • 小的刚大学毕业,被一个公司拉过来一个人做智能工厂(目前来说是这样) 原来公司有一套系统,上司写的,是用来记录产线投料时间,生产开始,结束时间,拉回仓库时间的,原来是人工去电脑客户端点的,有漏点忘点卡...
  • 关键词:键盘触发事件、QList用法、清除/获得焦点、CSS、Qt初学教程  1、打开Qt Creater软件,在'File'菜单中选择'New File or Project..'选项,弹出的对话框如下所示:    2、选择 Qt C++ Pro

     

          关键词:键盘触发事件、QList用法、清除/获得焦点、CSSQt初学教程

         1、打开Qt Creater软件,在'File'菜单中选择'New File or Project..'选项,弹出的对话框如下所示:

          

         2、选择 Qt C++ Project -->Qt Gui Project ,然后单击'Choose..',进入下面的界面后,Base Class选择QWidget,然后单击 Next :

        

           

         3、进入下面的界面,输入Name ,单击 Next ,再单击 Finished 即可:

          

         、双击左侧树状菜单里的QWidget.ui,

          
         5、计入界面设计,设计如下:

            (是序运行之后的效果)  

         其中,按钮的objectName都重新设置,如下所示:

        

          

         6、双击树状菜单中的QWidget.h,编写头文件如下:    

          #ifndef WIDGET_H
          #define WIDGET_H
          #include <QWidget>
          #include <QDebug> 
          #include<QKeyEvent>
          #include <QList>
          #include <QPushButton>
          #include <QStyle>
          namespace Ui {
               class Widget;
          }
          class Widget public QWidget
          {
             Q_OBJECT
           public:
             explicit Widget(QWidget *parent 0);
             ~Widget();

          protected
              void keyPressEvent(QKeyEvent *k);      
            private:
                 Ui::Widget *ui;
                 QList<QPushButton*> list;
                 QList<QPushButton*>::iterator i;
            private slots:

                 void init();//初始化

                 QList<QPushButton*> uniteAllBtn(); //将所有按钮放到List    

                 void upKeyEvent(QPushButton*);  
                 void getBtnFocus(int num);

                 void zeroBtnClicked();
                 void oneBtnClicked();
                 void twoBtnClicked();
                 void threeBtnClicked();
                 void fourBtnClicked();
                 void fiveBtnClicked();
                 void sixBtnClicked();
                 void sevenBtnClicked();
                 void eightBtnClicked();
                 void nineBtnClicked();
                 void backBtnClicked();
                 void clearClicked();
                //键盘上下键事件
                void keyUp();
                void keyDown();
                void keyLeft();
                void keyRight();
            };
        #endif // WIDGET_H

        

        7widget.cpp

        //----------------------------------------------------

            #include "widget.h"#include "ui_widget.h"

          Widget::Widget(QWidget *parent) :

             QWidget(parent),

            ui(new Ui::Widget)

       {

           ui->setupUi(this);

               this->init();

                 list = this->uniteAllBtn();

        }

       Widget::~Widget()

        {

          delete ui;

        }

       //初始化槽函数

     void Widget::init()

      {

          connect(ui->zeroBtn,SIGNAL(clicked()),this,SLOT(zeroBtnClicked()));

          connect(ui->oneBtn,SIGNAL(clicked()),this,SLOT(oneBtnClicked()));

           connect(ui->twoBtn,SIGNAL(clicked()),this,SLOT(twoBtnClicked()));

          connect(ui->threeBtn,SIGNAL(clicked()),this,SLOT(threeBtnClicked()));

          connect(ui->fourBtn,SIGNAL(clicked()),this,SLOT(fourBtnClicked()));

          connect(ui->fiveBtn,SIGNAL(clicked()),this,SLOT(fiveBtnClicked()));

          connect(ui->sixBtn,SIGNAL(clicked()),this,SLOT(sixBtnClicked()));

          connect(ui->sevenBtn,SIGNAL(clicked()),this,SLOT(sevenBtnClicked()));

          connect(ui->eightBtn,SIGNAL(clicked()),this,SLOT(eightBtnClicked()));

          connect(ui->nineBtn,SIGNAL(clicked()),this,SLOT(nineBtnClicked()));

          connect(ui->backBtn,SIGNAL(clicked()),this,SLOT(backBtnClicked()));

          connect(ui->clearBtn,SIGNAL(clicked()),this,SLOT(clearClicked()));

      }

       //将所有按钮装入一个Qlist

    QList<QPushButton*> Widget::uniteAllBtn()

      {

         QList<QPushButton*> list;

          list.append(ui->zeroBtn);

         list.append(ui->oneBtn);

         list.append(ui->twoBtn);

         list.append(ui->threeBtn);

         list.append(ui->fourBtn);

         list.append(ui->fiveBtn);

         list.append(ui->sixBtn);

         list.append(ui->sevenBtn);

         list.append(ui->eightBtn);

         list.append(ui->nineBtn);

         list.append(ui->backBtn);

         list.append(ui->clearBtn);

          return list;

     }

       //单击0按钮触发的事件

       void Widget::zeroBtnClicked()

    {

        ui->lineEdit->setText(ui->lineEdit->text()+"0");

        getBtnFocus(0);

         ui->zeroBtn->setStyleSheet("QPushButton:pressed{background-color: 

                                              rgb(255, 55,15);}");

       }

       //单击1按钮

    void Widget::oneBtnClicked()

     {

       ui->lineEdit->setText(ui->lineEdit->text()+"1");

        getBtnFocus(1);

      }

       //单击'2'按钮

    void Widget::twoBtnClicked()

      

        ui->lineEdit->setText(ui->lineEdit->text()+"2");

        getBtnFocus(2);

      }

       //单机'3'按钮

    void Widget::threeBtnClicked()

       {

       ui->lineEdit->setText(ui->lineEdit->text()+"3");

        getBtnFocus(3);

      }

       //4

      void Widget::fourBtnClicked()

    {

       ui->lineEdit->setText(ui->lineEdit->text()+"4");

       getBtnFocus(4);

       }

       //5

      void Widget::fiveBtnClicked()

    {

       ui->lineEdit->setText(ui->lineEdit->text()+"5");

        getBtnFocus(5);

      }

    //6

      void Widget::sixBtnClicked()

     {

       ui->lineEdit->setText(ui->lineEdit->text()+"6");

        getBtnFocus(6);

      }

    //7

      void Widget::sevenBtnClicked()

       {

       ui->lineEdit->setText(ui->lineEdit->text()+"7");

        getBtnFocus(7);

      }

    //8

      void Widget::eightBtnClicked()

       {

       ui->lineEdit->setText(ui->lineEdit->text()+"8");

        getBtnFocus(8);

      }

    //9

     void Widget::nineBtnClicked()

    {

       ui->lineEdit->setText(ui->lineEdit->text()+"9");

        getBtnFocus(9);

     }

       //退格键

    void Widget::backBtnClicked()

    {

         QString = ui->lineEdit->text();

         int len = s.length();

        QString s2 = s.remove(len-1,1);

          qDebug()<<s2;

         ui->lineEdit->setText(s2);

       getBtnFocus(10);

     }

    //清空

     void Widget::clearClicked()

      {

       getBtnFocus(11);

        ui->lineEdit->setText("");

     }

       //获取焦点

       void Widget::getBtnFocus(int num)

    {

       int j=0;

        for(i=list.begin(); i!=list.end(); ++i)

         {

           QPushButton *btn = *i;

              if(num == j)

            {

               btn->setFocus();

                 btn->setStyleSheet("background-color: rgb(255, 55, 15);");

           }

           else

            {

               btn->clearFocus();

               btn->setStyleSheet("");

              }

             j++;

        }

    }

      //键盘事件

       void Widget::keyPressEvent(QKeyEvent *k)

     {

       switch(k->key()){

          case Qt::Key_8:

               keyUp();

               break;

          case Qt::Key_2:

               keyDown();

               break;

          case Qt::Key_4:

              keyLeft();break;

          case Qt::Key_6:

              keyRight();break;

          }

    }

    //按键盘的上键触发的事件

    void Widget::keyUp()

    {

      int j=0; //判断是否到最后一个

      for(i=list.begin(); i!=list.end(); ++i)

      {

         // qDebug() << list.size();

          QPushButton *btn = *i;

          if(btn->hasFocus())

          {

               btn->clearFocus();

              if(j<list.size()-1){

                  QPushButton *btn1 = *(++i);

                  btn1->setFocus();

             }

              else

              {  //当焦点到list最后一个时

                  QPushButton *btn1 = *(list.begin());

                  btn1->setFocus();

              }

          }

          j++;

      }

    }

    void Widget::keyDown()

    {

      int j=0; //判断是否到最后一个

      for(i=list.begin(); i!=list.end(); ++i)

      {

          QPushButton *btn = *i;

          if(btn->hasFocus())

          {

              btn->clearFocus();

              if(j==0)

              { //当焦点到list第一个时

                  QPushButton *btn2 = *(--list.end());

                  qDebug()<<btn2->objectName();

                  btn2->setFocus();

             }

              else

              {

                  QPushButton *btn1 = *(--i);

                  btn1->setFocus();

              }

          }

          j++;

      }

    }

    void Widget::keyLeft()

    {

      keyUp();

    }

    void Widget::keyRight()

    {

       keyUp();

    }

    8、main.cpp不用做修改

        #include <QtGui/QApplication>

        #include "widget.h"

        int main(int argc, char *argv[])

       {

         QApplication a(argc, argv);

          Widget w;

          w.show();

         return a.exec();

       }


    //---------------------------------the end -----------------------------------

       http://blog.sina.com.cn/s/blog_5f08aea00100pkar.html
    展开全文
  • Zabbix 监控网站关键词,防止恶意篡改网站信息,并触发微信告警 一、主机规划 服务器 IP Zabbix-server 192.168.1.111 Zabbix-agent、Nginx 192.168.1.116 二、Zabbix-agent端安装Nginx服务 1、获取...

    前言

    Zabbix 监控网站关键词,防止恶意篡改网站信息,并触发微信告警

    一、主机规划

    服务器IP
    Zabbix-server192.168.1.111
    Zabbix-agent、Nginx192.168.1.116

    二、Zabbix-agent端安装Nginx服务

    1、获取nginx源码包,并解压
    [root@localhost src]# ls
    nginx-1.8.0.tar.gz
    [root@localhost src]# tar -xzvf nginx-1.8.0.tar.gz
    
    2、编译安装
    [root@localhost src]# cd nginx-1.8.0/
    [root@localhost nginx-1.8.0]# ./configure --prefix=/usr/local/nginx
    [root@localhost nginx-1.8.0]# make && make install
    
    3、修改nginx发布页面做测试
    [root@localhost ~]# vim /usr/local/nginx/html/index.html
    
    <h1>ZABBIX-test</h1>			///添加这一句测试语句
    
    4、重启nginx服务
    [root@localhost ~]# /usr/local/nginx/sbin/nginx -t
    nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
    nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
    [root@localhost ~]# /usr/local/nginx/sbin/nginx -s reload
    
    5、访问nginx界面

    在这里插入图片描述

    6、统计测试界面中是否存在ZABBIX-test文字,如果存在则数字大于或等于1
    [root@localhost ~]# curl -s 192.168.1.116/| grep -c ZABBIX-test
    1
    

    三、配置zabbix监控关键词

    1、编写监控脚本
    [root@localhost ~]# vim /tmp/auto_monitor_nginx.sh
    
    ```javascript
    #!/bin/bash
    #by auto monitor nginx test
    WEBSITE="http://192.168.1.116/"
    NUM=`curl -s $WEBSITE| grep -c "ZABBIX-test"`
    echo $NUM
    
    2、授予脚本可执行权限,并测试
    [root@localhost tmp]# chmod +x auto_monitor_nginx.sh 
    [root@localhost tmp]# sh auto_monitor_nginx.sh 
    1
    
    3、在zabbix-agent.conf配置文件中创建key值
    [root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf
    
    UserParameter=check_nginx_word,sh /tmp/auto_monitor_nginx.sh
    
    4、重启zabbix-agent服务
    [root@localhost ~]# systemctl restart zabbix-agent
    
    5、在zabbix-server端测试获取键值
    [root@zabbix ~]# zabbix_get -s 192.168.1.116 -k check_nginx_word
    1				///获取成功
    

    四、配置zabbix-web端

    1、创建主机

    在这里插入图片描述
    在这里插入图片描述

    2、创建监控

    在这里插入图片描述
    在这里插入图片描述

    3、创建图像

    在这里插入图片描述
    在这里插入图片描述

    4、创建触发器

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    5、配置微信告警
    运维之道 | Zabbix 使用企业微信发送邮件报警及定制邮件报警内容

    PS:触发微信告警详细步骤可按此链接进行操作


    五、查看检测结果及微信触发告警

    1、查看检测图像

    在这里插入图片描述

    2、将Nginx配置文件中的"ZABBIX-test"字删除,查看触发告警
    [root@localhost ~]# vim /usr/local/nginx/html/index.html
    
    <h1>ZABBIX-test</h1>			///将此含删除
    
    3、重启Nginx服务
    [root@localhost ~]# 
    [root@localhost ~]# /usr/local/nginx/sbin/nginx -t
    nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
    nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
    [root@localhost ~]# /usr/local/nginx/sbin/nginx -s reload
    

    在这里插入图片描述

    4、查看zabbix-web端图像

    在这里插入图片描述

    5、查看微信触发告警

    在这里插入图片描述
    在这里插入图片描述

    6、将"ZABBIX-test"值写入Nginx配置文件中,再次查看告警
    [root@localhost ~]# vim /usr/local/nginx/html/index.html
    
    <h1>ZABBIX-test</h1>			///添加这一句测试语句
    

    在这里插入图片描述
    在这里插入图片描述


    PS:通过此案例,可以自行按企业需求编写脚本,并在ZABBIX中创建监控项和触发器,并部署企业微信告警信息

    展开全文
  • 关键词广告是由用户的搜索行为(如输入检索词)触发的广告服务,包括普遍搜索(如百度,谷歌,雅虎等),也包括垂直搜索(如淘宝,京东等),而非关键词触发的广告(如facebook,腾讯社交广告,今日头条广告,新浪...
  • 网站SEO关键词优化技巧

    万次阅读 2019-07-29 22:29:13
    网站SEO的技巧剖析关键词的五大技巧 ...环绕着这个触发点反思一下,用户为什么要查找这个关键词,后面埋没着什么需求?只要理解了用户的查找需求,那么咱们的页面排名才有可能排到前面。这也是查找引擎算...
  • 我需要做一个关键词标注的功能,于是找了网上一个搜索并高亮显示关键词的插件,那个插件在input有键盘输入动作之后才能触发标记关键词的函数,而我需要只要用js改变了input的值,即使没有键盘输入也要触发函数,代码...
  • 最近在做移动real-time-search于实时搜索和关键词高亮显示的功能,通过博客的...实时搜索通过触发input事件和定时器来实现 <input v-model="keyWords" type="text" placeholder="请输入关键词" @input="handleQuer
  • 关键词:可编程数字电路 X光阴影照相 智能延迟 触发 CPLD在弹道测量、高速飞行物碰撞实验(如太空中的“垃圾”碎片对飞行的卫星及飞行舱的损害研究所进行的实验)及其它的类似实验中,需要准确测量飞行物碰撞前的...
  • 关键词密度

    2010-07-22 22:24:00
    百科名片关键词密度(Keyword Density)与关键词频率(Keyword Frequency)所阐述的实质上是同一个概念,用来量度关键词在网页上出现的总次数与其他文字的比例,一般用百分比表示。相对于页面总字数而言,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 33,652
精华内容 13,460
关键字:

关键词触发