sauween, Author at 峰哥分享 https://www.dengnz.com/author/sauween/ 昨天,今天,明天,每天的每天,都多懂一点点... Wed, 16 Dec 2020 01:52:11 +0000 zh-CN hourly 1 https://wordpress.org/?v=6.5.4 https://www.dengnz.com/wp-content/uploads/2020/02/cropped-logo-32x32.png sauween, Author at 峰哥分享 https://www.dengnz.com/author/sauween/ 32 32 potato 回声机器人 https://www.dengnz.com/2020/04/13/potato-%e5%9b%9e%e5%a3%b0%e6%9c%ba%e5%99%a8%e4%ba%ba/ https://www.dengnz.com/2020/04/13/potato-%e5%9b%9e%e5%a3%b0%e6%9c%ba%e5%99%a8%e4%ba%ba/?noamp=mobile#comments Mon, 13 Apr 2020 10:42:45 +0000 http://www.dengnz.com/?p=2407 项目代码我也上传了gitee 无需翻墙直接访问?

The post potato 回声机器人 appeared first on 峰哥分享.

]]>
const token = '123:abctoke'; // 这里键入你得token const BASE_URL = 'https://api.rct2008.com:8443/' + token + '/'; const myID = token.slice(0, token.indexOf(':')) function setWebhook() { // 这里写入setWebhook 然后先run 一次这个函数 才能将机器人接入GAS var setWebhook = { method: 'setWebhook', payload: { url: 'https://script.google.com/macros/s/hojpoicsihjnvsopalL-kjeg/exec' //这里键入你得GS 发布地址 } } Logger.log(postPotato(setWebhook)) } function doGet(e) { return HtmlService.createHtmlOutput("Hello World!! No, this link should be hidden!!!"); } function doPost(e) { var bodys = JSON.parse(e.postData.contents); bodys.forEach(element => { if (element) { payload = preparePayload(element); toPotato(payload) } }); } function toPotato(payload) { if (Array.isArray(payload)) { payloads = payload; } else { payloads = [payload]; } Logger.log(payloads) for (var i = 0; i < payloads.length; i++) { payload = payloads[i]; if (payload) { var res = postPotato(payload); Logger.log(res) } } } function postPotato(payload) { let url = BASE_URL + payload.method delete payload.method var data = { 'contentType': 'application/json', "method": "post", "payload": JSON.stringify(payload) } var response = UrlFetchApp.fetch(url, data); var res = JSON.parse(response); return res; } function preparePayload(body) { if (body.message && body.message.text) { if (body.message.from.id == myID) { //判断信息来源是自己得 然后返回空对象 return null } let mes = body.message.text; var sendTextMessage = { method: 'sendTextMessage', chat_type: body.message.chat.type, chat_id: body.message.chat.id, text: mes, // markdown: true, } if (mes == '小掌门') { const hello = ['你好', 'hi'] sendTextMessage.text = hello[Math.floor(Math.random() * hello.length)] } else { sendTextMessage.text = mes } return sendTextMessage } }

项目代码我也上传了gitee 无需翻墙直接访问?

The post potato 回声机器人 appeared first on 峰哥分享.

]]>
https://www.dengnz.com/2020/04/13/potato-%e5%9b%9e%e5%a3%b0%e6%9c%ba%e5%99%a8%e4%ba%ba/feed/ 4
GAS私聊转发机器人 https://www.dengnz.com/2019/12/17/gas%e7%a7%81%e8%81%8a%e8%bd%ac%e5%8f%91%e6%9c%ba%e5%99%a8%e4%ba%ba/ https://www.dengnz.com/2019/12/17/gas%e7%a7%81%e8%81%8a%e8%bd%ac%e5%8f%91%e6%9c%ba%e5%99%a8%e4%ba%ba/?noamp=mobile#respond Tue, 17 Dec 2019 05:22:48 +0000 http://www.dengnz.com/?p=2120 //关于如何部署可以查看峰哥教程第二集回声机器人的教程,代码里面自带了一个共享的数据库,如果想要自己的独有的数… 阅读更多 »GAS私聊转发机器人

The post GAS私聊转发机器人 appeared first on 峰哥分享.

]]>
//关于如何部署可以查看峰哥教程第二集回声机器人的教程,代码里面自带了一个共享的数据库,如果想要自己的独有的数据库可以PY峰哥白嫖一个数据库或参考这篇文章https://url.cn/55FecZe自己建造

 


// bot token 将你机器人的token替换成自己ide
var TOKEN = '1008091730:AAGye6loZhdwz_jJd7p4QA_3T_WYKxirHvI';
// my userid 这里是你的用户ID 私聊小掌门发送 /getid 就可以得到
var MyuserID = 1022285664
function doGet(e) {
return HtmlService.createHtmlOutput("Hello World!! No, this link should be hidden!!!");
}
// telegram api base url
var BASE_URL = 'https://api.telegram.org/bot' + TOKEN + '/';
function doPost(e) {
var body = JSON.parse(e.postData.contents);
body.message.chat.id = body.message.chat.id + '';
mongo.insert("logs", body)
var payload = preparePayload(body);

if (Array.isArray(payload)) {
payloads = payload;
} else {
payloads = [payload]
}

for (var i = 0; i < payloads.length; i++) {
payload = payloads[i];
if (payload) {
var res = postTelegram(payload);
}
}
}

function postTelegram(payload) {
var data = {
'contentType': 'application/json',
"method": "post",
"payload": JSON.stringify(payload)
}

var response = UrlFetchApp.fetch(BASE_URL, data);
var res = JSON.parse(response);
// mongo.insert("logs", res)
return res;
}

function preparePayload(body) {
if (body.message) {
if (body.message.chat.type == "private") {
if (body.message.text == "/start") {
var sendMeswho = {
"method": "sendMessage",
"chat_id": body.message.chat.id,
"text": "好的你可以发消息联系我了",
}
return sendMeswho;
}
if (body.message.chat.id == MyuserID) {
if (body.message.reply_to_message) {
var sendMegme = {
"method": "sendMessage",
"text": body.message.text,
}
if (body.message.reply_to_message.forward_from) {
sendMegme.chat_id= body.message.reply_to_message.forward_from.id
return sendMegme
}
else {
var data = {

'message.date' :body.message.reply_to_message.forward_date

}
data= mongo.get('logs',"filter="+JSON.stringify(data))
data = data._embedded[0].message.chat.id
sendMegme.chat_id= data
return sendMegme
}
} else {
var sendMeswho = {
"method": "sendMessage",
"chat_id": body.message.chat.id,
"text": "你需要回复那条消息?",
}
return sendMeswho;
}
}
var Mesforme = {
"method": "forwardMessage",
"chat_id": MyuserID,
"from_chat_id": body.message.from.id,
"message_id": body.message.message_id,
}

return Mesforme
}
}
}
var mongo;
var restheart = {};
var restheartUrl = "https://restheart.dengnz.com/user2/";
restheart.insert = function(collection, data) {
    var db = restheartUrl + collection;
    var option = getInsertOption(data);
    var response = UrlFetchApp.fetch(db, option);
};
 
function testRestHeart(){
    //  restheart.replace("to-telegram", null, {desc: "record all message send
    to telegram chat"});
    //  restheart.replace("telegram-response", null, {desc: "record all message
    return from telegram"});
    //  restheart.replace("logs", null, {desc: "record some other logs"});
    var data = {test: 'test2'};
    restheart.insert("logs", data);
 
    //  var data = {test: 'test replace'};
    //  restheart.replace("testColl/5c75be5e294610d3cbaa39f9", null, data);
 
    //  var data = {test: 'test get'};
    //  restheart.get("testColl/5c75be5e294610d3cbaa39f9", null, data);
    //
    //  var data = {test: 'test set'};
    //  restheart.set("testColl/5c75be5e294610d3cbaa39f9", null, data);
 
 
    //  var data = {"$addToSet":{"array" : "bar2"}};
    //  restheart.setOne("testColl/5c75be5e294610d3cbaa39f9", data);
}
 
restheart.replace = function(collection, query, data) {
    var db = restheartUrl + collection;
    if (query){
        db += "?" + query;
    }
    var option = getPutOption(data);
    var url = encodeURI(db);
    UrlFetchApp.fetch(url, option);
};
 
restheart.setOne = function(urlWithId, data) {
    var db = restheartUrl + urlWithId;
    var option = getPatchOption(data);
    option.muteHttpExceptions = true;
    var url = encodeURI(db);
    var response = UrlFetchApp.fetch(encodeURI(db), option);
}
 
restheart.setMany = function(collection, query, data) {
    var db = restheartUrl + collection;
    if (query){
        db += "/*?" + query;
    }
    var option = getPatchOption(data);
    var url = encodeURI(db);
    UrlFetchApp.fetch(url, option);
}
 
restheart.set = restheart.setMany;
restheart.remove = function(collection, query) {
    var db = restheartUrl + collection;
    if (query){
        db += "/*?" + query;
    }
    var option = getDeleteOption();
    var url = encodeURI(db);
    UrlFetchApp.fetch(url, option);
}
 
restheart.get = function(collection, query) {
    var db = restheartUrl + collection;
 
    if (query){
        db += "?" + query;
    }
 
    var option = getGetOption();
    var response = UrlFetchApp.fetch(encodeURI(db), option);
 
    var contentText = response.getContentText();
    var responseString = JSON.stringify(response);
 
    var  object = JSON.parse(response);
    return  object;
}
 
mongo = restheart;
 
 
 
function getInsertOption(data){
    var option = {
        "method": "post",
        'contentType': 'application/json',
        'headers': {"Authorization": "Basic " + Utilities.base64Encode('user2'
                + ":" + 'changeit')},
        "muteHttpExceptions": true,
        "payload": JSON.stringify(data)
    };
    return option;
}
function getDeleteOption(){
    var option = {
        "method": "delete",
        'contentType': 'application/json',
        'headers': {"Authorization": "Basic " + Utilities.base64Encode('user2'
                + ":" + 'changeit')},
    };
    return option;
}
function getPutOption(data){
    var option = {
        "method": "put",
        'contentType': 'application/json',
        'headers': {"Authorization": "Basic " + Utilities.base64Encode('user2'
                + ":" + 'changeit')},
        "payload": JSON.stringify(data)
    };
    return option;
}
function getPatchOption(data){
    var option = {
        "method": "patch",
        'contentType': 'application/json',
        'headers': {"Authorization": "Basic " + Utilities.base64Encode('user2'
                + ":" + 'changeit')},
        "payload": JSON.stringify(data)
    };
    return option;
}
function getGetOption(){
    var option = {
        "method": "get",
        'headers': {"Authorization": "Basic " + Utilities.base64Encode('user2'
                + ":" + 'changeit')},
    };
    return option;
}

 

 

The post GAS私聊转发机器人 appeared first on 峰哥分享.

]]>
https://www.dengnz.com/2019/12/17/gas%e7%a7%81%e8%81%8a%e8%bd%ac%e5%8f%91%e6%9c%ba%e5%99%a8%e4%ba%ba/feed/ 0
centos7 基于docker搭建 restheart数据库 https://www.dengnz.com/2019/11/15/centos7-%e5%9f%ba%e4%ba%8edocker%e6%90%ad%e5%bb%ba-restheart%e6%95%b0%e6%8d%ae%e5%ba%93/ https://www.dengnz.com/2019/11/15/centos7-%e5%9f%ba%e4%ba%8edocker%e6%90%ad%e5%bb%ba-restheart%e6%95%b0%e6%8d%ae%e5%ba%93/?noamp=mobile#respond Thu, 14 Nov 2019 19:35:32 +0000 http://www.dengnz.com/?p=2108 //准备工作 //  1)一个vps (建议用荷兰的 最好是不要买需要信用卡的 ) //  2)一个域名  /… 阅读更多 »centos7 基于docker搭建 restheart数据库

The post centos7 基于docker搭建 restheart数据库 appeared first on 峰哥分享.

]]>
//准备工作

//  1)一个vps (建议用荷兰的 最好是不要买需要信用卡的 )

//  2)一个域名 

//  3) cfcdn   可以去  https://cf.9sep.org/   白嫖一个免费的(这不是必须的,如果你想要安全并且后期转nodejs开发)

 

 

//使用yum安装(CentOS 7下)//其他系统请更换你系统自己的命令安装docker但是dockers里面得命令都是一样得
// Docker要求CentOS系统的内核版本高于3.10,查看本页面的方式条件来验证您的CentOS版本是否支持Do​​cker。

//通过uname -r命令查看您当前的内核版本
[root @ runoob〜] #uname -r

///安装Docker
//从2017年3月开始docker在原来的基础上分为两个分支版本:Docker CE和Docker EE。

// Docker CE即社区免费版,Docker EE即企业版,专家级安全,但需寻找使用。

//这里介绍了Docker CE的安装使用。

//可删除的版本:

sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
//安装一些必要的系统工具:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

//添加软件源信息:
sudo yum-config-manager –add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

//更新yum缓存:
sudo yum makecache快速

//安装Docker-ce:
sudo yum -y install docker-ce

//启动Docker后台服务
sudo systemctl start docker

//开机启动
systemctl enable docker

//测试运行hello-world
[root @ runoob〜] #docker run hello-world

//查看是否存在docker
ps -a

//声明新的网络
sudo docker network create sauween-net

 

//安装nginx-proxy
sudo docker rm -f nginx-proxy
sudo docker run -p 80:80 -p 443:443 \
-d \
–name nginx-proxy \
–network sauween-net \
–network-alias nginx代理主机\
-v / home / sauween / certs:/ etc / nginx / certs:ro \
-v /etc/nginx/vhost.d \
-v / usr / share / nginx / html \
-v / var /run/docker.sock:/tmp/docker.sock:ro \
–label com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy \
jwilder / nginx-proxy

 

 

//安装nginx伴侣companion  管理SSL证书 让你得HTTP网站变成https 得网站
sudo docker rm -f companion
sudo docker run \
-d \
–name companion \
–network sauween-net \
–network-alias companion-host \
-v /home/sauween/certs:/etc/nginx/certs:rw \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
–volumes-from nginx-proxy \
jrcs/letsencrypt-nginx-proxy-companion

 

//安装 nginx-hello     请确认你的域名是否正确解析到你现在得服务器

//如果是CDN用户可以略过  nginx伴侣companion 因为CDN自带SSL证书
sudo docker rm -f www
sudo docker run \
-d \
-e VIRTUAL_HOST=www.sauween.com,sauween.com \
-e “LETSENCRYPT_HOST=www.sauween.com” \
-e “LETSENCRYPT_EMAIL=你邮箱@gmail.com” \
–network sauween-net \
–network-alias www-host \
–name www \
-p 81:81 \
nginxdemos/hello
///测试环境 安装后访问你的域名看看有没有 nginx-hello

 

//安装mongo
sudo docker rm -f mongodb
docker run\
-d \
–network sauween-net \
–network-alias mongodb-host -e MONGO_INITDB_ROOT_USERNAME=restheart -e MONGO_INITDB_ROOT_PASSWORD=R3ste4rt! –name mongodb \
–name mongodb mongo \
–bind_ip_all \

 

 

//安装 restheart
docker rm -f restheart
docker run \
-d \
-e VIRTUAL_HOST=mongo.sauween.com \
-e VIRTUAL_PORT=8080 \
-e “LETSENCRYPT_HOST=mongo.sauween.com” \
-e “LETSENCRYPT_EMAIL=你邮箱@gmail.com” \
-p 82:8080 \
–network sauween-net \
–network-alias mongo-host \
–name restheart \
–env MONGO_URI=’mongodb://restheart:R3ste4rt!@mongodb:27017′ softinstigate/restheart:3.6.0

 

 

//一些常用命令
docker rmi mongo //删除mongo镜像
docker rm restheart //删除mongo容器
docker ps -a //查看容器
docker images //查看镜像
docker exec -it Container-name /bin/bash 进入容器
docker start $(docker ps -a | awk ‘{ print $1}’ | tail -n +2) //doncker 启动所有容器
find / -name security.yml //查找密钥所在位置
systemctl restart docker // docker 设置开机启动
docker update –restart=always nginx-proxy 镜像开机启动
netstat -lntp //查看防火墙状态
setenforce 0 //防火SELinux墙临时关闭

The post centos7 基于docker搭建 restheart数据库 appeared first on 峰哥分享.

]]>
https://www.dengnz.com/2019/11/15/centos7-%e5%9f%ba%e4%ba%8edocker%e6%90%ad%e5%bb%ba-restheart%e6%95%b0%e6%8d%ae%e5%ba%93/feed/ 0