巧用ChatGPT改造代码 让PIX主题片刻同时支持本地链接和外部链接转化为卡片

本代码已经升级:

巧用ChatGPT改造代码 让PIX主题片刻同时支持本地链接和外部链接转化为卡片(二) 巧用ChatGPT改造代码 让PIX主题片刻同时支持本地链接和外部链接转化为卡片(二) 本文是以下文章的代码升级版本: [pix_post ids=221] 升级及优化内容: 1、在获取站标和标题的基础上增加了获取描述。 2、优化了片刻显示速度。 3、支持了更多的普通网站转为成卡片。 主... 时间:2023/11/20 分类:技术相关

改造代码最开始的目的是看到其他hexo的网站上有“分享好物”的功能,可以推广但不限于淘宝、京东商品,我的是wordpress网站,搜索没有相关的插件,但也想搞一个,可惜没有成功。后来看到PIX自带的卡片功能,不过默认仅支持本地链接,包括文章、页面、片刻等,如果想分享好物或者好的链接地址,是无法转化为卡片的,所以就有了改造代码的想法。但是我对代码一窍不通,所以想到了用ChatGTP帮我改造。

一、改造代码的运行逻辑:

在现有的代码上新增判断,如果是本站链接,处理源代码不变;如果是外部链接,先分析外部链接源码,查找是否存在logo标签,有的话取logo标签值作为卡片图像,没有的话查找是否存在icon标签,有的话取icon标签值作为卡片图像,logo优先级大于icon,图像格式包括但不限于jpg/jpeg/gif/png/webp/svg等,查找是否存在title或者name标签,如果有取title或者name标签值作为卡片标题,查找是否存在des或者desc或者description标签,如果有取des或者desc或者description标签值作为卡片描述。

二、目前已知的BUG:

改造的代码并不完美,有一些外部网站,并不能获取信息。一种是像天猫、阿里巴巴1688这些使用动态的完全无法获取,及时获取了也会500、502错误造成自己的网站打不开或者缓慢,只能从数据库中删除相关网址;一种是获取不完全,就是图像、标题和描述三者只取一二,但是网址都可以获取,目前不清楚是何原因造成的,原以为是目标网址使用了CND或者防盗链,但都做了处理还是不行。

BUG注意事项在卡片页面已经做了提示。

巧用ChatGPT改造代码 让PIX主题片刻同时支持本地链接和外部链接转化为卡片-似水流年

三、改造过程:

涉及到以下文件:

1、在pix/inc目录下新增simple_html_dom.php、Debug.php、HtmlDocument.php、HtmlNode.php和constants.php,其中主要是simple_html_dom.php。

2、改造pix/inc/pix-type.php,所有的代码都在这里了。

查找以下代码,从这里开始,如果没有改动过文件,大概在28行:

// 卡片------------------------------------------------------
function head_append_meta() {

查找以下代码,从这里的上面结束,如果没有改动过文件,大概在171行,也就是改造结束在169行:

//音乐编辑---------------------------------------------------------------------------------------------------------------------------------
function audio_type_box(){

我们要改造的就是中间的代码,替换成以下代码:

温馨提示: 此处为隐藏内容,需要评论本文后才能查看.
评论后请刷新一次页面,但注意不要清除缓存,否则还需要再次评论!

这中间有一句替换成你自己的,其实我也不知道这个到底有用没有,本来是处理目标外部链接CDN和防盗链用的,但好像没啥效果,该不显示的还是不显示:

$proxy_script_url = 'https://proxyium.com/zh-CN/'; // 代理脚本的URL

四、改造效果:

巧用ChatGPT改造代码 让PIX主题片刻同时支持本地链接和外部链接转化为卡片-似水流年
正常获取
巧用ChatGPT改造代码 让PIX主题片刻同时支持本地链接和外部链接转化为卡片-似水流年
哔哩哔哩获取不到标题和描述
巧用ChatGPT改造代码 让PIX主题片刻同时支持本地链接和外部链接转化为卡片-似水流年
正常获取
巧用ChatGPT改造代码 让PIX主题片刻同时支持本地链接和外部链接转化为卡片-似水流年
淘宝获取不到标题和描述,拼多多获取不到图像和描述。

彩蛋:如果觉得以上卡片宽度太窄,要和下面的点赞分享评论一样宽,只需要调整pix/inc/assets/css/main.css里的代码。

查找一下代码,大概在4326行:

.moment_card_item {
    width: 100%;
    max-width: 500px;
    position: relative;
    margin-bottom: 5px;
}

把max-width的值由原300px改为500px即可。

巧用ChatGPT改造代码 让PIX主题片刻同时支持本地链接和外部链接转化为卡片-似水流年

改造到此结束,用到的文件:

https://www.123pan.com/s/bqeA-kmj1H.html

提取码:V4Xr

消息盒子
# 您需要首次评论以获取消息 #
# 您需要首次评论以获取消息 #

只显示最新10条未读和已读信息