有点突破认知了。
@北京
有点突破认知了。
@北京
./configure --with-features=huge --enable-pythoninterp --enable-cscope
./configure --with-features=huge --enable-python3interp --enable-cscope
本文介绍调用 API 获取 DNSPod 域名解析需要的 domain_id
和 record_id
参数的方法,所有的 DNSPod API 请求都必须提供 login_token
作为公共参数以验证用户身份是否合法。
DNSPOD > 用户中心 > 安全设置 > API Token
使用英文 ,
将 ID 和 Token 连接起来即公共请求参数 login_token
curl 'https://dnsapi.cn/Domain.List' -d 'login_token=<your_login_token>&format=json'
根据响应中的 domains
得到域名对应的 domain_id
curl 'https://dnsapi.cn/Record.List' -d 'login_token=<your_login_token>&format=json&domain_id=<your_domain_id>'
根据响应中的 records
得到子域名记录对应的 record_id
废话不多说,直接贴代码,有兴趣的访问我的 github。
#!/usr/bin/env python # -*- coding:utf8 -*- import sys reload(sys) sys.setdefaultencoding('utf8') def sendsms(phone, param_string, access_key_id, access_key_secret, template_code, sign_name): from datetime import datetime import uuid import requests url = 'https://sms.aliyuncs.com/' ts = datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%SZ') once = str(uuid.uuid4()) data = { 'Action': 'SingleSendSms', 'SignName': sign_name, 'TemplateCode': template_code, 'RecNum': phone, 'ParamString': param_string, 'Format': 'JSON', 'Version': '2016-09-27', 'AccessKeyId': access_key_id, 'SignatureMethod': 'HMAC-SHA1', 'Timestamp': ts, 'SignatureVersion': '1.0', 'SignatureNonce': once, } def __percent_encode(s): import urllib s = str(s) s = urllib.quote(s.decode('utf8').encode('utf8'), '') s = s.replace('+', '%20') s = s.replace('*', '%2A') s = s.replace('%7E', '~') return s def __gen_signature(data, req_method, secret): import hashlib import hmac import base64 sorted_data = sorted(data, key=lambda v: v[0]) vals = [] for k, v in sorted_data: vals.append(__percent_encode(k) + '=' + __percent_encode(v)) params = '&'.join(vals) string_to_sign = req_method + '&%2F&' + __percent_encode(params) key = secret + '&' signature = base64.encodestring(hmac.new(key, string_to_sign, hashlib.sha1).digest()).strip() return signature try: headers = { 'Content-Type': 'application/x-www-form-urlencoded', } signature = __gen_signature(data.items(), 'POST', access_key_secret) data['Signature'] = signature r = requests.post(url, data=data, headers=headers) print r.text except Exception, e: print 'EXCEPT:', e if __name__ == '__main__': pass
最后想说的是,阿里云文档中关于 base64 后的签名值还需要做一次 URLEncode 编码的说法是有问题的,事实证明只会报错:Specified signature is not matched with our calculation.
,掉这坑里差点没爬上来。
MiLog 发布一年多了,昨天才第一次真正有动力实现插件系统——总觉得用一个异步的外部脚本做 anti-spam,不怎么得劲,还是写一个插件系统比较靠谱,本来插件系统也是 MiLog 的规划功能之一,更重要的是:
于是乎,MiLog Plugins System 诞生了,目前只支持用 Python 编写插件,最简单的插件只需要两个函数(参考 speak-chinese-please):
register()
用于 MiLog 加载插件时注册事件;<事件名>()
用于处理事件回调;将编写好的插件放在任意目录下,并在 conf/app.conf
中增加一行,指向该目录就行:
plugindir = <path_to_plugin_directory>
哦对了,做完以上步骤后 MiLog 需要重启,注意通过日志观察插件是否注册成功。
Now, enjoy!
最近一段时间本 blog 被个别 spammer 盯上了,成功绕过验证码狂发垃圾广告,本来打算抽空做个简单的朴素贝叶斯做反垃圾,无奈本人实在太懒,迟迟没有动手,倒是收集了不少内容做样本……
考虑到这些 spam 内容无一例外都是英文,暂时先写个检测中文的脚本顶一阵吧,于是在几分钟前,speak-chinese-please 上线了——我太懒,简单脚本管用绝不写复杂的,顺便观察下 spammer 学习能力如何,10 年前玩 WordPress 的时候已经有机器人可以随机输入中文绕过该机制了,就看这次它会不会了。
分享一个 python 检测中文字符的函数吧,这也是 speak-chinese-please 的核心:
def any_chinese(s): return any(u'\u4e00' <= c <= u'\u9fff' for c in s.decode('utf-8'))
嗯,就一行,注意 any()
函数。
pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs pip install -U
修改 ~/.pip/pip.conf
文件(Mac & Linux 系统)或 %HOMEPATH%\pip\pip.ini
(Windows 系统),如果不存在就新建一个,把下面的内容粘进去:
[global] trusted-host=mirrors.aliyun.com index-url=http://mirrors.aliyun.com/pypi/simple
2017-12-02: Karabiner-Elements-11.3.0 已经支持在 macOS High Sierra (ver 11.13.1) 系统上实现 Vi Style Arrows——安装 Karabiner-Elements 后,在这个页面上找到「Vi Style Arrows」,点击右侧的 Import 按钮将配置导入并 enable 即可。
作为 vim + HHKB 键盘 + Karabiner 的重度依赖患者,某天晚上升级到 macOS Sierra 后突然傻眼了,Control_L + hjkl 作为方向键的设置全部失效了……
接下来的几天强迫自己重新适应 MBP 自带键盘、强迫自己适应 HHKB 默认的方向组合键,都觉得丑陋不堪,已然唯有 Control_L + hjkl 才是正确打开方式,于是踏上了寻找 Karabiner 临时替代者的不归路,直到刚才看到这个:[KeyMove] Control_L+hjkl to Left/Down/Up/Right #103
这里提到了一款收费软件:Keyboard Maestro,按照 seangaffney 的设置就可以轻松实现!不管了,这是目前为止找到体验最完美的替代软件了——当然,我的需求只是 Control_L + hjkl 实现方向键。
希望用到 Trial 结束前,the Next Generation Karabiner 可以完工哈,虽然感觉可能性不大,给作者捐了 $5,加油……
ps. BetterTouchTool、ControllerMate 都试过,前者貌似没法实现 key repeat,后者折腾半天不知道究竟如何正确设置组合键,遂都放弃了……
@author lzw.whu@gmail.com
@version 20160908:03
ci <word>
ci > <word>
版本 | 更新内容 |
---|---|
20160908:03 | 支持中文 |
20160908:02 | 第一次输入获取suggest,回车后查词 |
20160907:01 | 初始版本 |