首页
归档
友链
留言
关于
更多
投稿
捐赠
搜索
1
TP-link路由器使用SSH登录并获得root权限
2,844 阅读
2
ubuntu wget:unable to resolve host address解决方法
521 阅读
3
更新系统后出现“你没有权限在此位置保存文件请与管理员联系”解决办法
490 阅读
4
Onedrive云盘程序OneManager登录界面美化
480 阅读
5
Joe For Typecho主题实现自动更新
423 阅读
站点运维
系统运维
编程源码
工具分享
学习资料
设计技艺
业余无线电
生活碎记
登录
搜索
标签搜索
代码
json
typecho
添加
维护
全站
怪怪的科长
累计撰写
33
篇文章
累计收到
13
条评论
首页
栏目
站点运维
系统运维
编程源码
工具分享
学习资料
设计技艺
业余无线电
生活碎记
页面
归档
友链
留言
关于
投稿
捐赠
搜索到
3
篇与
» 编程源码
的结果
2021-05-10
Typecho插件内获取插件版本号并基于GitHub做版本检测
/** * 我是插件说明 * @package 我是插件名字 * @author <a href="https://www.ijkxs.com">即刻学术<br> gogobody</a> * @version 1.0.0 * @link https://www.ijkxs.com */在typecho 插件头部说明注释中声明了 version 之后,在插件内部如何获取这个 version 呢?可以通过以下代码获取:public static function get_plugins_info(){ $plugin_name = 'WxFans'; //改成你的插件名 Typecho_Widget::widget('Widget_Plugins_List@activated', 'activated=1')->to($activatedPlugins); $activatedPlugins = json_decode(json_encode($activatedPlugins),true); $plugins_list = $activatedPlugins['stack']; $plugins_info = array(); for ($i=0;$i<count($plugins_list);$i++){ if($plugins_list[$i]['title'] == $plugin_name){ $plugins_info = $plugins_list[$i]; break; } } if(count($plugins_info)<1){ return false; }else{ return $plugins_info['version']; } }第一步你得有个github仓库吧,在仓库右侧有个release 这个就是说我们需要给作品发布一个新版本的时候,就release一个。点击 release -> Drafr a new release 我们可以给我们的版本添加一些信心。Tag version这里,建议填写数字版本号,比如 1.0.0,title可以填写和tag 一样。description就写一些描述。在下面附件栏那里。如果不上传的话,github 会自动打包你 push 的最新代码,如果手动上传的话,那么最后就会显示你上传的附件。这里假设我已经 release 了一个 1.0.0 的版本。编写更新检测代码var wxfversion = "1.0.0"; function update_detec() { var container = document.getElementById("wxfans"); if (!container) { return } var ajax = new XMLHttpRequest(); container.style.display = "block"; ajax.open("get", "https://api.github.com/repos/gogobody/WxFans/releases/latest"); ajax.send(); ajax.onreadystatechange = function() { if (ajax.readyState === 4 && ajax.status === 200) { var obj = JSON.parse(ajax.responseText); var newest = obj.tag_name; if (newest > wxfversion) { container.innerHTML = "发现新主题版本:" + obj.name + '。下载地址:<a href="' + obj.zipball_url + '">点击下载</a>' + "<br>您目前的版本:" + String(wxfversion) + "。" + '<a target="_blank" href="' + obj.html_url + '">查看新版亮点</a>' } else { container.innerHTML = "您目前的版本:" + String(wxfversion) + "。" + "您目前使用的是最新版主题。" } } } }; update_detec();需要改动的有两处:var wxfversion = "1.0.0";//修改为自己的当前版本号 ajax.open("get", "https://api.github.com/repos/gogobody/WxFans/releases/latest"); // 主要修改gogobody/WxFans为你的 github用户名/你的仓库repo名字这样代码会自动去检测你的 repo 的release 的最新版本,并对 tag version 做比较。嵌入 typecho 插件首先我们要对刚刚的js进行压缩,也就是压缩成一行,不然放进插件换行会被替换为导致代码失效。js压缩的网址有很多: 比如 菜鸟js压缩工具通常一个typecho插件 plguin.php 的顶部注释说明是这样,以下为模板可以直接套用,将压缩后的 js 放入后即可。/** * 我是插件说明 * <div class="wxFansSet"><a style="width:fit-content" id="wxfans">版本检测中..</div> </div><style>.wxFansSet{margin-top: 5px;}.wxFansSet a{background: #ff5a8f;padding: 5px;color: #fff;}</style> * <script>在这里插入压缩后的代码</script> * @package 我是插件名字 * @author <a href="https://www.ijkxs.com">即刻学术<br> gogobody</a> * @version 1.0.0 * @link https://www.ijkxs.com */这样就完成了一个在插件页检测 github 更新的功能。
2021年05月10日
2 阅读
0 评论
0 点赞
2021-04-21
Python定时发送天气预报
import requests import smtplib from bs4 import BeautifulSoup from email.mime.text import MIMEText from pyquery import PyQuery as pq def sendWeatherMail(url,to): #获取天气信息 html = requests.get(url).content doc = pq(html) clearfix1 = doc('#today .clearfix') clearfix2 = clearfix1.remove('.sky').text() a = clearfix2.split() wea = str(a[0]+':\n'+a[1]+' '+a[2]+' 风速:'+a[3]+' '+a[4]+' '+a[5]+'\n\n'+a[6]+':\n'+a[7]+' '+a[8]+' 风速:'+a[9]+' '+a[10]+' '+a[11]) #发送邮件 msg = MIMEText(wea) msg['Subject'] = 'XX地区天气预报' msg['From'] = 'admin@XXXXX.com' #邮箱账号 msg['To'] = to mail_host = 'smtpdm.aliyun.com' #我这里用的阿里云推送 163 QQ 均可 mail_user = 'admin@XXXXX.com' #自己的邮箱账号 mail_pass = 'XXXXXXXXXXXX' #你的那一串key s = smtplib.SMTP_SSL(mail_host) s.connect(mail_host, 465) s.login(mail_user,mail_pass) s.send_message(msg) s.quit() try: sendWeatherMail('http://www.weather.com.cn/weather1d/101010300.shtml#input','86593927@qq.com')#101010300为北京市朝阳区城市编号 可更改地区编号 86593927@qq.com改为发送对象的邮箱地址 print('邮件发送成功') except smtplib.SMTPException: print('邮件发送失败')
2021年04月21日
168 阅读
1 评论
0 点赞
2020-08-01
分享网站中几个比较实用的代码
如果您看到这篇文章,表示您已经见到了Kee's Note的第一篇文章.网站运行时间[年月日版本]本站已勉强运行:<span id="sitetime" style="color: #0196e3;"></span> <script language=javascript> function siteTime(){ window.setTimeout("siteTime()", 1000); var seconds = 1000; var minutes = seconds * 60; var hours = minutes * 60; var days = hours * 24; var years = days * 365; var today = new Date(); var todayYear = today.getFullYear(); var todayMonth = today.getMonth()+1; var todayDate = today.getDate(); var todayHour = today.getHours(); var todayMinute = today.getMinutes(); var todaySecond = today.getSeconds(); /* Date.UTC() -- 返回date对象距世界标准时间(UTC)1970年1月1日午夜之间的毫秒数(时间戳) year - 作为date对象的年份,为4位年份值 month - 0-11之间的整数,做为date对象的月份 day - 1-31之间的整数,做为date对象的天数 hours - 0(午夜24点)-23之间的整数,做为date对象的小时数 minutes - 0-59之间的整数,做为date对象的分钟数 seconds - 0-59之间的整数,做为date对象的秒数 microseconds - 0-999之间的整数,做为date对象的毫秒数 */ var t1 = Date.UTC(2020,8,1,20,08,08); //北京时间2017-8-21 23:32:13 var t2 = Date.UTC(todayYear,todayMonth,todayDate,todayHour,todayMinute,todaySecond); var diff = t2-t1; var diffYears = Math.floor(diff/years); var diffDays = Math.floor((diff/days)-diffYears*365); var diffHours = Math.floor((diff-(diffYears*365+diffDays)*days)/hours); var diffMinutes = Math.floor((diff-(diffYears*365+diffDays)*days-diffHours*hours)/minutes); var diffSeconds = Math.floor((diff-(diffYears*365+diffDays)*days-diffHours*hours-diffMinutes*minutes)/seconds); document.getElementById("sitetime").innerHTML=+diffYears+"年"+diffDays+"天"+diffHours+"时"+diffMinutes+"分钟"+diffSeconds+"秒"; } siteTime(); </script>注意:若主题后台提供直接添加代码选项可以直接使用,若未提供请修改模板并在对应位置添加。访问量统计两行代码,搞定计数,多少人访问你的网站一目了解。<script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script> <span id="busuanzi_container_site_pv">本站总访问量<span id="busuanzi_value_site_pv"></span>次</span> <span id="busuanzi_container_site_uv">本站访客数<span id="busuanzi_value_site_uv"></span>人次</span>总访问量和访客数统计由 不蒜子 提供
2020年08月01日
283 阅读
3 评论
1 点赞