分类: 插件&API

  • WP-ChatGPT web前端

    WP-ChatGPT web前端

    介绍

    支持双模型,提供了两种非官方 ChatGPT API 方法

    方式免费?可靠性质量
    ChatGPTAPI(gpt-3.5-turbo-0301)否可靠相对较笨
    ChatGPTUnofficialProxyAPI(网页 accessToken)是相对不可靠聪明

    对比:

    1. ChatGPTAPI 使用 gpt-3.5-turbo-0301 通过官方OpenAI补全API模拟ChatGPT(最稳健的方法,但它不是免费的,并且没有使用针对聊天进行微调的模型)
    2. ChatGPTUnofficialProxyAPI 使用非官方代理服务器访问 ChatGPT 的后端API,绕过Cloudflare(使用真实的的ChatGPT,非常轻量级,但依赖于第三方服务器,并且有速率限制)

    查看详情

    切换方式:

    1. 进入 service/.env.example 文件,复制内容到 service/.env 文件
    2. 使用 OpenAI API Key 请填写 OPENAI_API_KEY 字段 (获取 apiKey)
    3. 使用 Web API 请填写 OPENAI_ACCESS_TOKEN 字段 (获取 accessToken)
    4. 同时存在时以 OpenAI API Key 优先

    反向代理:

    ChatGPTUnofficialProxyAPI时可用,详情

    # service/.env
    API_REVERSE_PROXY=

    环境变量:

    全部参数变量请查看或这里

    /service/.env

    前置要求

    Node

    node 需要 ^16 || ^18 版本(node >= 14 需要安装 fetch polyfill),使用 nvm 可管理本地多个 node 版本

    node -v

    PNPM

    如果你没有安装过 pnpm

    npm install pnpm -g

    填写密钥

    获取 Openai Api Key 或 accessToken 并填写本地环境变量 跳转

    # service/.env 文件
    
    # OpenAI API Key - https://platform.openai.com/overview
    OPENAI_API_KEY=
    
    # change this to an `accessToken` extracted from the ChatGPT site's `https://chat.openai.com/api/auth/session` response
    OPENAI_ACCESS_TOKEN=
    

    安装依赖

    为了简便 后端开发人员 的了解负担,所以并没有采用前端 workspace 模式,而是分文件夹存放。如果只需要前端页面做二次开发,删除 service 文件夹即可。

    后端

    进入文件夹 /service 运行以下命令

    pnpm install

    前端

    根目录下运行以下命令

    pnpm bootstrap

    测试环境运行

    后端服务

    进入文件夹 /service 运行以下命令

    pnpm start

    前端网页

    根目录下运行以下命令

    pnpm dev

    打包

    使用 Docker

    Docker 参数示例

    • OPENAI_API_KEY 二选一
    • OPENAI_ACCESS_TOKEN 二选一,同时存在时,OPENAI_API_KEY 优先
    • OPENAI_API_BASE_URL 可选,设置 OPENAI_API_KEY 时可用
    • OPENAI_API_MODEL 可选,设置 OPENAI_API_KEY 时可用
    • API_REVERSE_PROXY 可选,设置 OPENAI_ACCESS_TOKEN 时可用 参考
    • AUTH_SECRET_KEY 访问权限密钥,可选
    • TIMEOUT_MS 超时,单位毫秒,可选
    • SOCKS_PROXY_HOST 可选,和 SOCKS_PROXY_PORT 一起时生效
    • SOCKS_PROXY_PORT 可选,和 SOCKS_PROXY_HOST 一起时生效
    docker

    Docker build & Run

    docker build -t chatgpt-web .
    
    # 前台运行
    docker run --name chatgpt-web --rm -it -p 3002:3002 --env OPENAI_API_KEY=your_api_key chatgpt-web
    
    # 后台运行
    docker run --name chatgpt-web -d -p 3002:3002 --env OPENAI_API_KEY=your_api_key chatgpt-web
    
    # 运行地址
    http://localhost:3002/

    Docker compose

    Hub 地址

    version: '3'
    
    services:
      app:
        image: chenzhaoyu94/chatgpt-web # 总是使用 latest ,更新时重新 pull 该 tag 镜像即可
        ports:
          - 3002:3002
        environment:
          # 二选一
          OPENAI_API_KEY: xxxxxx
          # 二选一
          OPENAI_ACCESS_TOKEN: xxxxxx
          # API接口地址,可选,设置 OPENAI_API_KEY 时可用
          OPENAI_API_BASE_URL: xxxx
          # API模型,可选,设置 OPENAI_API_KEY 时可用
          OPENAI_API_MODEL: xxxx
          # 反向代理,可选
          API_REVERSE_PROXY: xxx
          # 访问权限密钥,可选
          AUTH_SECRET_KEY: xxx
          # 超时,单位毫秒,可选
          TIMEOUT_MS: 60000
          # Socks代理,可选,和 SOCKS_PROXY_PORT 一起时生效
          SOCKS_PROXY_HOST: xxxx
          # Socks代理端口,可选,和 SOCKS_PROXY_HOST 一起时生效
          SOCKS_PROXY_PORT: xxxx
    • OPENAI_API_BASE_URL 可选,设置 OPENAI_API_KEY 时可用
    • OPENAI_API_MODEL 可选,设置 OPENAI_API_KEY 时可用

    使用 Railway 部署

    Deploy on Railway

    Railway 环境变量

    环境变量名称必填备注
    PORT必填默认 3002
    AUTH_SECRET_KEY可选访问权限密钥
    TIMEOUT_MS可选超时时间,单位毫秒
    OPENAI_API_KEYOpenAI API 二选一使用 OpenAI API 所需的 apiKey (获取 apiKey)
    OPENAI_ACCESS_TOKENWeb API 二选一使用 Web API 所需的 accessToken (获取 accessToken)
    OPENAI_API_BASE_URL可选,OpenAI API 时可用API接口地址
    OPENAI_API_MODEL可选,OpenAI API 时可用API模型
    API_REVERSE_PROXY可选,Web API 时可用Web API 反向代理地址 详情
    SOCKS_PROXY_HOST可选,和 SOCKS_PROXY_PORT 一起时生效Socks代理
    SOCKS_PROXY_PORT可选,和 SOCKS_PROXY_HOST 一起时生效Socks代理端口

    注意: Railway 修改环境变量会重新 Deploy

    手动打包

    后端服务

    如果你不需要本项目的 node 接口,可以省略如下操作

    复制 service 文件夹到你有 node 服务环境的服务器上。

    # 安装
    pnpm install
    
    # 打包
    pnpm build
    
    # 运行
    pnpm prod

    PS: 不进行打包,直接在服务器上运行 pnpm start 也可

    前端网页

    1、修改根目录下 .env 文件中的 VITE_APP_API_BASE_URL 为你的实际后端接口地址

    2、根目录下运行以下命令,然后将 dist 文件夹内的文件复制到你网站服务的根目录下

    参考信息

    pnpm build
  • WordPress ChatGPT 对话插件 WP-ChatGPT

    WordPress ChatGPT 对话插件 WP-ChatGPT

    WP-ChatGPT 是一款基于 ChatGPT 的 WordPress 对话插件,支持通过简码无缝接入任意主题。

    ChatGPT 是目前最强的 AI 之一,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,真正像人类一样来聊天交流,甚至能完成撰写邮件、视频脚本、文案、翻译、代码,写论文等任务。

    主要特性有:

    双接口,同时支持网页版和最新推出的API版。
    额度及套餐系统,支持设置套餐和额度,方便进行流量变现。
    接口轮询机制,最大限度解决单一账号易达请求上限的问题。
    完善的会话机制,前台支持同时多会话切换,支持对任一消息进行重载,删除。
    回收站功能,支持前端删除的消息和会话移动至回收站。
    使用WordPress的账号体系,基本可与主题无缝配合。
    问答流式响应及Markdown解析。
    支持 PHP >= 7.4 版本。
    支持后台一键更新。


    价格
    专业版:¥6500/包含一次代安装服务和后续更新

    相关图片:

  • 必应图片壁纸开放API接口

    必应图片壁纸开放API接口

    Bing官方提供的API接口返回的是json数据,很多朋友想要能够直接获取图片的API接口链接,作为项目背景图所用。

    通过imgRun提供的开放API接口链接可以简单、快速地获取精美高清的Bing壁纸,动态链接,每日自动更新,作为网站背景和电脑壁纸都非常不错。

    简介

    Bing首页每日更新一张来自世界各地的精美图片。通过imgRun提供的API链接可以简单、快速地获取栩栩如生的每日壁纸,每日自动更新,作为网站背景和电脑壁纸都非常不错……

    代码开源

    开源,是一种互联网精神。本着取之于民用之于民的原则,本人将代码开源在Github上。链接:

    https://github.com/mike126126/bing

    将Github代码克隆一份到你自己的主机(服务器)上,绑定好域名,即可访问。

    需要注意的是,PHP直接输出图片的方式,图片走的是服务器流量,速度受限于服务器速度。建议优先选择“跳转至Bing图片直链”的方式使用,直接输出为Bing图片直链,图片访问不占用服务器流量,速度不受服务器邮箱,更快更好用。

    当然,bing.img.run启用了又拍云CDN加速,理论上速度也相当快。如果您下载源代码部署到自己服务器上,那么就建议使用302跳转的Bing直链的方式,速度为Bing速度。

    不想自己部署代码的,可以直接使用bing.img.run提供的API服务。

    使用方法

    本API接口的链接,可以直接把它当做一个图片url链接来用,插入如下代码:

    PHP直接输出图片

    <img src="https://bing.img.run/1920x1080.php" alt="Bing每日壁纸1080P高清" />
    
    <img src="https://bing.img.run/1366x768.php" alt="Bing每日图片" />
    
    <img src="https://bing.img.run/m.php" alt="Bing每日壁纸手机超高清" />
    

    跳转至Bing图片直链

    <img src="https://bing.img.run/1920x1080_302.php" alt="Bing每日壁纸1080P高清" />
    
    <img src="https://bing.img.run/1366x768_302.php" alt="Bing每日图片" />
    
    <img src="https://bing.img.run/m_302.php" alt="Bing每日壁纸手机超高清" />
    

    文件说明

    在需要引用图片的地方插入url即可。不同参数url说明如下:

    https://bing.img.run/1920×1080.php PHP链接直接输出1920×1080分辨率图片。

    https://bing.img.run/1920x1080_302.php 输出为1920×1080分辨率的Bing直链图片。

    https://bing.img.run/1366×768.php PHP链接直接输出1366×768分辨率图片。

    https://bing.img.run/1366x768_302.php 输出为1366×768分辨率的Bing直链图片。

    https://bing.img.run/m.php PHP链接直接输出1080×1920分辨率竖版图片。

    https://bing.img.run/m_302.php 输出为1080×1920分辨率的Bing直链竖版图片。

    项目主页

    Bing每日壁纸高清存档:https://bing.img.run
    Bing壁纸开放API接口项目主页:https://bing.img.run/bingwallpaperapi.html

    接口演示

    下面这两张图片都是使用本站开放API链接直接获取的,第一张为Bing今日壁纸,第二张为Bing随机壁纸。随机壁纸每次刷新网页加载的都是不同的哦,F5试一下吧~

    Bing今日壁纸
    Bing今日壁纸

    Bing随机壁纸
    Bing随机壁纸

    使用方法

    本站开放API接口分两个,一个是获取当日壁纸,另一个是随机获取Bing历史壁纸(获取范围为本站收录的Bing历史壁纸)。所有接口都是支持直接使用的链接,可以直接把它当做一个图片url链接来用,插入如下代码:

    Bing今日壁纸(长期提供服务,地球不停转,我们不停服)

    <img src="https://bing.img.run/uhd.php" alt="Bing每日壁纸UHD超高清原图" />
    <img src="https://bing.img.run/1920x1080.php" alt="Bing每日壁纸1080P高清" />
    <img src="https://bing.img.run/1366x768.php" alt="Bing每日壁纸普清" />
    <img src="https://bing.img.run/m.php" alt="Bing每日壁纸手机版1080P高清" />

    随机获取Bing历史壁纸

    <img src="https://bing.img.run/rand_uhd.php" alt="随机获取Bing历史壁纸UHD超高清原图" />
    <img src="https://bing.img.run/rand.php" alt="随机获取Bing历史壁纸1080P高清" />
    <img src="https://bing.img.run/rand_1366x768.php" alt="随机获取Bing历史壁纸普清" />
    <img src="https://bing.img.run/rand_m.php" alt="随机获取Bing历史壁纸手机版1080P高清" />

    文件说明

    在需要引用图片的地方插入你自己部署好的URL即可。不同参数URL文件说明如下:

    uhd.php PHP链接直接输出4k超高清原图。

    uhd_302.php 输出4k超高清原图的Bing直链图片。

    1920×1080.php PHP链接直接输出1920×1080分辨率图片。

    1920x1080_302.php 输出为1920×1080分辨率的Bing直链图片。

    1366×768.php PHP链接直接输出1366×768分辨率图片。

    1366x768_302.php 输出为1366×768分辨率的Bing直链图片。

    m.php PHP链接直接输出1080×1920分辨率竖版图片。

    m_302.php 输出为1080×1920分辨率的Bing直链竖版图片。

  • 魔众绘图功能(Markdown文档管理)

    魔众绘图功能(Markdown文档管理)

    模块演示 参考演示地址 绘图功能(Markdown文档管理) 的部分功能

    演示网址

     模块介绍

    模块介绍

    「绘图功能(Markdown文档管理)」是一个Web版本的在线图表文档管理系统,提供拖拽式的文档管理系统。

    功能特性

    • 提供增强版绘图管理功能
    • 多标签文档管理
    • 多分类文档管理
    • 文档导出Markdown
    • 文档导出Html预览
  • 获取Bing每日壁纸用作首屏大图

    获取Bing每日壁纸用作首屏大图

    Bing 搜索每天都会更换一张精美的图片作为壁纸,除了特殊时候不太好看外(比如春节那几天),没多大问题。移动端还有上每日故事,与图片现配。现在我的博客首屏图片就是 Bing 每日壁纸,有没有感觉 B 格满满^_^。本文将介绍如何把 Bing 每日壁纸和故事扒到自己博客。

    获取 API 接口

    首先我们进入Bing 首页,会发现自动转到中国版。不过这没关系,中国版更符合国情,速度也比国际版快一些。

    通过抓包,可以发现http://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1这里可以获取到无水印的图片。

    那每日故事呢?通过模拟 UA,访问移动版。同样发现了 API 接口http://cn.bing.com/cnhp/coverstory/。不过这里的图片是有水印的。

    接口已经得到了,接下来就是写代码了。因为我既想使用无水印的图片,也想获取每日故事,所以我把两个接口结合起来使用。

    代码

    <?php
    
    /**
    * 获取Bing每日壁纸和故事
    * @author giuem
    */
    function bingImgFetch(){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'http://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1');
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'User-Agent: Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36'
    ));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $re = curl_exec($ch);
    curl_close($ch);
    $re = json_decode($re,1);//电脑版返回内容
    $re2 = json_decode(file_get_contents('http://cn.bing.com/cnhp/coverstory/'),1);//移动版返回内容
    return array(
    /* 更改图片尺寸,减小体积 */
    'url' => str_replace('1920x1080','1366x768',$re['images'][0]['url']),
    /* 结束日期 */
    'date' => date('j',strtotime($re['images'][0]['enddate'])),
    /* 故事标题 */
    'title' => $re2['title'],
    /* 内容 */
    'd' => $re2['para1']
    );
    }
    ?>

    使用示例

    如果是 wordpress,可以把上面的代码丢进function.php,然后该怎么用就怎么用。

    $bingimg= bingImgFetch();
    
    echo $bingimg['url'];//输出图片地址
    echo $bingimg['title'];
    echo $bingimg['d'];

    我的使用方法

    因为我用的是静态博客,不能在后端完成这些操作,所以只能通过 js 获取。同时把代码放在国内访问较快的SAE中,使用Memcache缓存内容。而且我在获取后还把数据储存在localStorage中,这样可以减少请求次数。

    为什么要缓存?因为不缓存的话,别人每访问一次你都要获取一次,IP 可能会被被 Bing ban 了。

    当然,你也可以缓存到数据库中,这些你都可以结合实际情况修改代码。

    PHP in SAE

    <?php
    
    header('Access-Control-Allow-Origin: *');
    $mmc=memcache_init();
    if($mmc==false){
    /* 如果memcache启动失败,直接获取 */
    $bingimg = json_encode(bingImgFetch());
    }else {
    $bingimg = memcache_get($mmc,'bing_url');
    $date = memcache_get($mmc,'bing_url_date');
    /* 判断日期进行更新 */
    if(date('j') != $date || !$bingimg || !$date){
    $bingimg = json_encode(bingImgFetch());
    /* 写入 */
    memcache_set($mmc,"bing_url",$bingimg);
    memcache_set($mmc,"bing_url_date",date('j'));
    }
    }
    echo $bingimg;
    function bingImgFetch(){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'http://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1');
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'User-Agent: Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36'
    ));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $re = curl_exec($ch);
    curl_close($ch);
    $re = json_decode($re,1);
    $re2 = json_decode(file_get_contents('http://cn.bing.com/cnhp/coverstory/'),1);
    return array(
    'url' => str_replace('1920x1080','1366x768',$re['images'][0]['url']),
    'date' => date('j',strtotime($re['images'][0]['enddate'])),
    'title' => $re2['title'],
    'd' => $re2['para1']
    );
    }

    HTML

    <section id="hero">
    
    <div class="hero-warp">
    <p id="hero-title"></p>
    <p id="hero-d"></p>
    </div>
    </section>

    CSS

    html,
    
    body {
    height: 100%;
    }
    #hero {
    position: relative;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.6);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
    background-attachment: fixed;
    width: 100%;
    text-align: center;
    color: #fff;
    display: table;
    }
    .hero-warp {
    display: table-cell;
    vertical-align: middle;
    text-align: center;
    }
    #hero-title {
    font-size: 28px;
    margin-bottom: 8px;
    }
    #hero-d {
    width: 80%;
    margin: 0 auto;
    }

    JS

    如果你使用jQuery,可以把这里的 ajax 换成$.ajax()实现。

    (function () {
    
    //bing pic load
    var $data = {
    title: localStorage.getItem('bing_title')
    ? localStorage.getItem('bing_title')
    : '',
    d: localStorage.getItem('bing_d') ? localStorage.getItem('bing_d') : '',
    url: localStorage.getItem('bing_url')
    ? localStorage.getItem('bing_url')
    : '',
    date: localStorage.getItem('bing_date')
    ? localStorage.getItem('bing_date')
    : '',
    };
    if (
    new Date().getDate() != $data.date ||
    $data.title == '' ||
    $data.d == '' ||
    $data.url == ''
    ) {
    ajax('GET', '//giuem.sinaapp.com/bing/', function ($data) {
    localStorage.setItem('bing_title', $data.title);
    localStorage.setItem('bing_d', $data.d);
    localStorage.setItem('bing_url', $data.url);
    localStorage.setItem('bing_date', new Date().getDate());
    setHero($data);
    });
    } else {
    setHero($data);
    }
    })();
    function setHero($data) {
    var $hero = document.getElementById('hero');
    if (!$hero) {
    return;
    }
    if ($data) {
    $hero.style.cssText += 'background-image:url(' + $data.url + ')';
    document.getElementById('hero-title').innerHTML = $data.title;
    document.getElementById('hero-d').innerHTML = $data.d;
    }
    }
    function ajax(type, url, opts, callback) {
    var xhr = new XMLHttpRequest();
    if (typeof opts === 'function') {
    callback = opts;
    opts = null;
    }
    xhr.open(type, url);
    var fd = new FormData();
    if (type === 'POST' && opts) {
    for (var key in opts) {
    fd.append(key, JSON.stringify(opts[key]));
    }
    }
    xhr.onload = function () {
    callback(JSON.parse(xhr.response));
    };
    xhr.send(opts ? fd : null);
    }
  • 获取Bing每日壁纸用作首屏大图

    Bing 搜索每天都会更换一张精美的图片作为壁纸,除了特殊时候不太好看外(比如春节那几天),没多大问题。移动端还有上每日故事,与图片现配。现在我的博客首屏图片就是 Bing 每日壁纸,有没有感觉 B 格满满^_^。本文将介绍如何把 Bing 每日壁纸和故事扒到自己博客。

    获取 API 接口

    首先我们进入Bing 首页,会发现自动转到中国版。不过这没关系,中国版更符合国情,速度也比国际版快一些。

    通过抓包,可以发现http://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1这里可以获取到无水印的图片。

    那每日故事呢?通过模拟 UA,访问移动版。同样发现了 API 接口http://cn.bing.com/cnhp/coverstory/。不过这里的图片是有水印的。

    接口已经得到了,接下来就是写代码了。因为我既想使用无水印的图片,也想获取每日故事,所以我把两个接口结合起来使用。

    代码

    <?php
    /**
      * 获取Bing每日壁纸和故事
      * @author giuem
      */
    function bingImgFetch(){
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, 'http://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1');
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            'User-Agent: Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36'
        ));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $re = curl_exec($ch);
        curl_close($ch);
        $re = json_decode($re,1);//电脑版返回内容
        $re2 = json_decode(file_get_contents('http://cn.bing.com/cnhp/coverstory/'),1);//移动版返回内容
        return array(
            /* 更改图片尺寸,减小体积 */
            'url' => str_replace('1920x1080','1366x768',$re['images'][0]['url']),
            /* 结束日期 */
            'date' => date('j',strtotime($re['images'][0]['enddate'])),
            /* 故事标题 */
            'title' => $re2['title'],
            /* 内容 */
            'd' => $re2['para1']
        );
    }
    ?>

    使用示例

    如果是 wordpress,可以把上面的代码丢进function.php,然后该怎么用就怎么用。

    $bingimg= bingImgFetch();
    echo $bingimg['url'];//输出图片地址
    echo $bingimg['title'];
    echo $bingimg['d'];

    我的使用方法

    因为我用的是静态博客,不能在后端完成这些操作,所以只能通过 js 获取。同时把代码放在国内访问较快的SAE中,使用Memcache缓存内容。而且我在获取后还把数据储存在localStorage中,这样可以减少请求次数。

    为什么要缓存?因为不缓存的话,别人每访问一次你都要获取一次,IP 可能会被被 Bing ban 了。

    当然,你也可以缓存到数据库中,这些你都可以结合实际情况修改代码。

    PHP in SAE

    <?php
    header('Access-Control-Allow-Origin: *');
    $mmc=memcache_init();
    if($mmc==false){
        /* 如果memcache启动失败,直接获取 */
        $bingimg = json_encode(bingImgFetch());
    }else {
        $bingimg = memcache_get($mmc,'bing_url');
        $date = memcache_get($mmc,'bing_url_date');
        /* 判断日期进行更新 */
        if(date('j') != $date || !$bingimg || !$date){
            $bingimg = json_encode(bingImgFetch());
            /* 写入 */
            memcache_set($mmc,"bing_url",$bingimg);
            memcache_set($mmc,"bing_url_date",date('j'));
        }
    }
    echo $bingimg;
    function bingImgFetch(){
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, 'http://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1');
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            'User-Agent: Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36'
        ));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $re = curl_exec($ch);
        curl_close($ch);
        $re = json_decode($re,1);
        $re2 = json_decode(file_get_contents('http://cn.bing.com/cnhp/coverstory/'),1);
        return array(
            'url' => str_replace('1920x1080','1366x768',$re['images'][0]['url']),
            'date' => date('j',strtotime($re['images'][0]['enddate'])),
            'title' => $re2['title'],
            'd' => $re2['para1']
        );
    }

    HTML

    <section id="hero">
      <div class="hero-warp">
        <p id="hero-title"></p>
        <p id="hero-d"></p>
      </div>
    </section>

    CSS

    html,
    body {
      height: 100%;
    }
    #hero {
      position: relative;
      height: 100%;
      background-color: rgba(0, 0, 0, 0.6);
      background-position: center center;
      background-repeat: no-repeat;
      background-size: cover;
      background-attachment: fixed;
      width: 100%;
      text-align: center;
      color: #fff;
      display: table;
    }
    .hero-warp {
      display: table-cell;
      vertical-align: middle;
      text-align: center;
    }
    #hero-title {
      font-size: 28px;
      margin-bottom: 8px;
    }
    #hero-d {
      width: 80%;
      margin: 0 auto;
    }

    JS

    如果你使用jQuery,可以把这里的 ajax 换成$.ajax()实现。

    (function () {
      //bing pic load
      var $data = {
        title: localStorage.getItem('bing_title')
          ? localStorage.getItem('bing_title')
          : '',
        d: localStorage.getItem('bing_d') ? localStorage.getItem('bing_d') : '',
        url: localStorage.getItem('bing_url')
          ? localStorage.getItem('bing_url')
          : '',
        date: localStorage.getItem('bing_date')
          ? localStorage.getItem('bing_date')
          : '',
      };
      if (
        new Date().getDate() != $data.date ||
        $data.title == '' ||
        $data.d == '' ||
        $data.url == ''
      ) {
        ajax('GET', '//giuem.sinaapp.com/bing/', function ($data) {
          localStorage.setItem('bing_title', $data.title);
          localStorage.setItem('bing_d', $data.d);
          localStorage.setItem('bing_url', $data.url);
          localStorage.setItem('bing_date', new Date().getDate());
          setHero($data);
        });
      } else {
        setHero($data);
      }
    })();
    function setHero($data) {
      var $hero = document.getElementById('hero');
      if (!$hero) {
        return;
      }
      if ($data) {
        $hero.style.cssText += 'background-image:url(' + $data.url + ')';
        document.getElementById('hero-title').innerHTML = $data.title;
        document.getElementById('hero-d').innerHTML = $data.d;
      }
    }
    function ajax(type, url, opts, callback) {
      var xhr = new XMLHttpRequest();
      if (typeof opts === 'function') {
        callback = opts;
        opts = null;
      }
      xhr.open(type, url);
      var fd = new FormData();
      if (type === 'POST' && opts) {
        for (var key in opts) {
          fd.append(key, JSON.stringify(opts[key]));
        }
      }
      xhr.onload = function () {
        callback(JSON.parse(xhr.response));
      };
      xhr.send(opts ? fd : null);
    }
  • 国内常用前端静态资源公共库

    国内常用前端静态资源公共库

     

    其实国内有很多前端静态资源公共库访问的速度很快,并且这些公共库就是为了提供免费服务的,不用担心像zhimg那样被滥用而禁止白嫖,不过前提是加速的资源库要被cdnjs收录,像butterfly主题中使用的大部分资源都会有的,接下来测试国内常见的五个静态库速度,并做出推荐。

    BootCDN

      BootCDN 是 极兔云 联合 Bootstrap 中文网 共同支持并维护的前端开源项目免费 CDN 服务,致力于为 jQuery、Bootstrap、Vue.js 一样优秀的前端开源项目提供稳定、快速的免费 CDN 加速服务。BootCDN 所收录的开源项目主要同步于 cdnjs 开源项目仓库。

    官网:https://www.bootcdn.cn

    Staticfile CDN

      Staticfile CDN 是由国内优秀的云存储服务商 七牛云 提供存储和加速赞助,技术社区掘金支持。同步国外 cdnjs 源站,同时由国内开源贡献者提交其它有价值的库。

    官网:https://www.staticfile.org

    360 前端静态资源库

      360 前端静态资源库是由奇舞团支持并维护的开源项目免费 CDN 服务,支持 HTTPS 和 HTTP/2,囊括上千个前端资源库和 Google 字体库。该站静态资源库数据均同步于 cdnjs 开源项目仓库。

    官网:https://cdn.baomitu.com

    字节跳动静态资源公共库

      字节跳动静态资源库支持多协议、资源动态拼接、快速检索及资源的动态更新,安全、稳定、实时。本网站静态资源定期同步自 cdnjs ,有多个文件拼接的功能。

    官网:https://cdn.bytedance.com

  • SuperPWA插件可以快速将WordPress网站生成APP效果

    SuperPWA插件可以快速将WordPress网站生成APP效果

    有不少的朋友希望自己也做一款网站的APP,这样投放到应用商店上给用户下载。从技术角度看可能不是特别难,当然过程可能是比较耗时的,而且个人感觉对于个人网站来说是没有必要的。我们可以使用SuperPWA插件来解决这个问题。SuperPWA 插件全名是Super Progressive Web Apps,其主要功能是通过插件激活配置之后,我们用户在移动端打开网站的时候,会有提示下载安装一个快捷图标到我们的手机APP中,实际上就类似快捷图标连接网站。

    而且我们在打开安装和配置SuperPWA 插件的站点,可以看到类似APP的界面,兼容性比较好。

    我们看到是不是下载安装这个插件的还是比较多的。

    我们可以给插件进行配置信息。我们在设置好之后保存,插件会自动帮助我们的WP网站生成支持PWA应用。我们还可以安装一些附加的插件。

    这个插件是增强功能的,我们可以看看是否有需要。不过是英文界面我们可以翻译看。

    这样,我们在安装之后,如果用移动端打开会提示是否下载应用。这个不是真安装APP,而是我们软件面板中创建一个快捷键,然后打开之后可以看到是固定设置的通用APP界面浏览我们的网站。

    PS:体验后看到,虽然用户安装比较多,但是实用价值不高,个人还是建议直接用自适应的WP网站主题即可。

  • WP AutoPost pro3.2破解版下载——最好用的WordPress采集插件免费下载,支持wp5.3版本

    WP AutoPost pro3.2破解版下载——最好用的WordPress采集插件免费下载,支持wp5.3版本

    WP-AutoPost 是一款最适合wordpress的采集插件,完美的支持wp的各个版本,即使是wordpress最新版本5.3.2也是支持的,小编亲测可用。在网上还有许多其他版本的破解版,但使用后发现,还是wp autopost pro3.2最为稳定,因此推荐给大家。

    注:因为是破解版,在无人值守采集大概一个月后,小编发现采集不到文章了,经研究,只要点击“选项-重置 ” 即可恢复正常。

    功能描述:

    一键安装,全自动采集更新,无需人工干预WP-AutoPost安装十分简单方便,只需几分钟,立即开始自动采集更新您的网站,而且结合开源的wordpress程序,新手也能快速上手,根据所设定的采集方式采集网址,然后自动抓取网页内容,检测文章是否重复,导入更新文章,这一切操作程序都是全自动完成,无需人工干预。而且我们还有专门的客服为商业客户提供技术支持。


    定向采集,支持通配符,CSS选择器等多种方式精确采集任何内容定向采集只需要提供文章列表URL即可智能采集来自于任何网站或栏目的内容,方便简单,设置简单的规则便可精确采集标题、正文及其他任何内容。


    完美支持wordpress各种功能,可自动设置分类目录、标签、摘要、特色图片,支持自定义栏目、自定义文章类型等完美支持Wordpress各种特色功能,可选择发布到的分类目录,自动添加标签,自动生成摘要,自动设置特色图片。支持自定义文章类型,自定义分类、文章形式。甚至可抓取任意内容添加到“Wordpress自定义栏目”,方便扩展。


    注:破解版的autopost的伪原创及翻译功能不能用,其他功能均支持可用。


    可下载远程图片及其他任意格式附件到本地服务器,并支持添加水印支持远程图片下载到本地服务器,并可选择自动添加上文本水印或图像水印。其他任何格式的附件及文档也能轻松下载到本地服务器。


    可下载远程图片及其他任意格式附件到本地服务器,并支持添加水印支持将图片上传到Flick,节省带宽及空间,提高网站访问速度将采集图片上传到Flick,1TB的超大免费存储空间,节省带宽及空间,提高网站访问速度,适合面向国外用户的网站。


    支持将图片上传到七牛云存储,节省带宽及空间,提高网站访问速度将采集图片上传到七牛云存储,10GB的免费存储空间,节省带宽及空间,提高网站访问速度,适合面向中国大陆用户的网站。

    支持将图片上传到又拍云存储,节省带宽及空间,提高网站访问速度将采集图片上传到又拍云存储,节省带宽及空间,提高网站访问速度,适合面向中国大陆用户的网站。


    支持SEO优化,内容过滤,HTML标签过滤,关键词替换,自动添加链接,添加自定义内容,自定义文章样式自动删除采集内容中的HTML注释及其他不必要内容,自动给图片添加上Alt属性,过滤链接,关键词替换,自定义添加链接这些都有利于SEO。并支持内容过滤,过滤采集内容中不希望发布的内容(如广告代码,文章来源,版权等信息),甚至可以在文章任意位置添加上自定义内容,也可以自定义文章样式。

  • 魔众工具箱系统

    魔众工具箱系统

    简单方便、干净整洁、全面完整的在线工具最新版本:v2.7.0 最新发布:2022-04-05

    在线演示 Demos多端支持,助力创业者实现精细化运营及成功

    PC端演示站https://tools.demo.tecmz.com

    后台管理演示https://tools.demo.tecmz.com/admin用户demo 密码123456

  • 研究胖鼠采集(Fat Rat Collect)会员功能破解限制

    研究胖鼠采集(Fat Rat Collect)会员功能破解限制

    对象:胖鼠采集(Fat Rat Collect)v2.4.3 ;本文章综合整理于互联网,已测试有效,但本着尊重和希望应用者支持原作者,才是长久之计,支持并给他打赏!

    胖鼠采集(Fat Rat Collect) 是一款能帮助你网站文章采集自动化的好帮手. 开源免费, 支持所有网站列表详情页面 它有列表批量自动采集,自动发布,自动打标签,等黑科技功能, 一次创建规则, 后续省心省力

    胖鼠采集官方网站:https://www.fatrat.cn/

    1、突破采集3页限制:

    虽然可以突破3页的采集,但是延时的问题还是会存在采集不完全,需多次采集,或修改文件中的延时时间:60秒

    fat-rat-collect\includes\fatrat-spider.php

    修改该处即可:

                if (!get_option(FRC_Validation::FRC_VALIDATION_SPONSORSHIP) && count($page_count) > 3){
                    return ['code' => FRC_ApiError::FAIL, 'msg' => FRC_Validation::FRC_HINT_F];
                }

    2、采集后发布到指定目录:

    查找“FRC_HINT_L”,跟踪到fat-rat-collect\includes\fatrat-options.php

            if (get_option(FRC_Validation::FRC_VALIDATION_RELEASE_CONTROL)){
                $params = [
                    'category' => frc_sanitize_array('release_category', 'integer'),
                    'user' => frc_sanitize_array('release_user', 'integer'),
                    'status' => frc_sanitize_text('release_status', 'pending'),
                    'type' => frc_sanitize_text('release_type', 'post'),
                    'thumbnail' => frc_sanitize_text('release_thumbnail', 'thumbnail1'),
                    'release_type' => frc_sanitize_text('release_type', 'WordPress'),
                    'extension_field' => frc_sanitize_text('extension_field', 'post'),
                ];
    
                if (empty($params['category'])){
                    $params['category'] = array(1);
                }
    
                if (empty($params['user'])){
                    $params['user'] = [get_current_user_id()];
                }
            } else {
                $msg = FRC_Validation::FRC_HINT_L;
                $params = [
                    'category' => array(1),
                    'user' => [get_current_user_id()],
                    'status' => frc_sanitize_text('release_status', 'pending'),
                    'thumbnail' => 'thumbnail2',
                    'release_type' => 'WordPress',
                    'type' => 'post',
                    'extension_field' => 'post',
                ];
            }

    修改位置:

    [content_hide]

    在数据库表wp_options中添加一项FRC_VALIDATION_RELEASE_CONTROL
    ,值任意就好,我是写的1

    [/content_hide]

    wordpress主题开发函数2:添加选项add_option()与修改选项update_option()

    办法1:

    SELECT wp_term_relationships.object_id FROM `wp_term_relationships` WHERE wp_term_relationships.object_id in (select wp_posts.ID from `wp_posts` where `wp_posts`.`ID`=wp_term_relationships.object_id )AND wp_term_relationships.term_taxonomy_id = 1

    UPDATE `wp_term_relationships` SET wp_term_relationships.term_taxonomy_id =445 WHERE wp_term_relationships.object_id in (select wp_posts.ID from `wp_posts` where `wp_posts`.`ID`=wp_term_relationships.object_id )AND wp_term_relationships.term_taxonomy_id = 1

    3、时间限制:

    数据库中wp_options中的字段frc_report_permissions_time值,先修改了再说:

    4、胖鼠工具箱-自动采集(自动发布)-时间频率突破:

    未破解前,为灰色:

    代码位置:\fat-rat-collect\includes\fatrat-kit.php,268行、293行

                    <h4>自动采集</h4>
                    <ul>
                        <?php $cron_spider = get_option('frc_cron_spider'); ?>
                        <li><input type="radio" name="frc_cron_spider" value="" <?php echo empty($cron_spider) ? 'checked' : '' ?>> 关闭此功能</li>
                        <?php foreach ($frc_wp_schedules as $key => $info){
                            $disabled = '';
                            if (empty($frc_validation_sponsorship) && $info['interval']<43200){
                                $disabled = 'disabled';
                            }
                            echo (sprintf('<li><input type="radio" name="frc_cron_spider" value="%s" %s %s> %s(%s秒)</li>', $key, (!empty($cron_spider) && $cron_spider == $key ? esc_html('checked') : ''), $disabled, $info['display'], $info['interval']));
                        } ?>
                    </ul>
    

    [content_hide]

    修改43200为0即可.

    [/content_hide]

    5、自动标签功能

    \fat-rat-collect\includes\fatrat-kit.php,303行

    同文件,第138行:

    需要在wp_options创建字段,且内容为json格式:

    [content_hide]

    字段名:FRC_VALIDATION_AUTO_TAGS

    值:{"switch":open,"created_at":"1617073742"}
    
    

    [/content_hide]

    6、标签内链:

    增加字段

    [content_hide]

    FRC_VALIDATION_INNER_CHAIN

    {"switch":open,"created_at":1617333683,"limit":1,"hide_empty":1,"created_at":1}
    
    

    [/content_hide]

    7、修改配置数量的限制

    找到文件:fatrat-options.php:做以下修改即可!

    [content_hide]

    搜索找到(count($this->options()) >= 5;修改5为更大的数值即可。

    [/content_hide]

    8、修改数据通详情页面展示数据条数

    找到文件:fatrat-data-detail.php,做以下修改即可!

    查找以下字段:

    [content_hide]

    $per_page = $this->get_items_per_page(‘snippets_per_page’, 10);

    修改10为你要的条数。

    [/content_hide]

    9、其他都差不多

    其他都OK了 但是关键词随机插入不行:

    字段内容修改为:{“switch”:open,”created_at”:1617333683,”limit”:1,”hide_empty”:1,”created_at”:1}

    10、最后可用模式数据库内容:

    11、最后

    作者还是很厚道的,小菜也过了一把瘾,对原作者的红包赞助还是不能少的。

  • 胖鼠采集 WordPress优秀开源采集插件

    胖鼠采集 WordPress优秀开源采集插件

    • 微信公众号文章采集 – 强大的Jquery可以处理各种版权信息, 纵享丝滑.
    • 简书文章采集 – 强大的Jquery可以处理内容各种图片, 柔顺到底.
    • 知乎问答采集 – 强大的Jquery可以处理各种你不想要的东西, 一键爽歪歪.
    • (独家主打) 列表采集,历史采集 视频文字教程- 只需轻轻一点. 数不清的文章就来了.
    • (独家主打) 详情页面文章采集 – 任何网站十秒搞定
    • (独家主打) 分页爬取 – 历史数据, 也不放过. 一网打尽
    • (胖鼠主打) 自动采集 – 一键启动不放过每一份数据.
    • (胖鼠主打) 自动发布 – 您省心省力好帮手.
    • (独家主打) 调试模式 – 新建规则好帮手, 采集结果好伙伴.
    • (独家主打) 体验例子 – 一键体验胖鼠.
    • (主打主打) 文章自动添加, 动态内容, 自动标签, 标签内链, 优化SEO.
    • (胖鼠采集) 文章滤重 – 支持.
    • (胖鼠采集) 自动特色图片 – 支持.
    • (胖鼠采集) 采集图片加入媒体库 – 支持.
    • (胖鼠采集) 数据处理 – 完美支持Html Jquery
    • (胖鼠采集) 内容关键字过滤替换 伪原创 – 支持.
    • (胖鼠采集) 自定义采集任何可见网站 – 完美支持.
    • (胖鼠采集) 自定义文章图片链接类型 – 支持.
    • (重磅重磅) 胖鼠采集完全基于Wordpress, 安装即用, 开源作品
    • (声明声明) 如你的PHP版本小于PHP71, 请移步胖鼠采集的Github下载使用胖鼠v5版本 分支名: based_php_5.6
    • (声明声明) 胖鼠采集初衷为参考学习交流; 请大家遵纪守法. 抵制违法犯罪, 作者不承担任何法律风险.
    • (声明声明) 胖鼠采集开源可供您查阅代码, 或者二次开发使用供您使用, 但不可修改源码后用于商业行为.
    • …

    安装

    • 在插件中搜索 胖鼠采集 安装即可
    • 将插件文件上传到/wp-content/plugins/目录 即可
    • PHP版本小于PHP71, 请移步胖鼠采集的Github下载使用胖鼠v5版本 分支名: based_php_5.6
    • 推荐环境
    • PHP7.2 或 PHP7.3
    • MYSQL5.7 或 MYSQL5.6

    系统分为五大块.

    • 胖鼠强大的爬虫中心
    • 支撑胖鼠的配置中心
    • 发布文章的数据桶
    • 调试中心debugging
    • 工具箱特色小工具

    GITHUB地址:https://github.com/KitePig/FatRat-Collect