@forestsheep
2018-01-04T09:10:51.000000Z
字数 2608
阅读 231
devlog
forest sheep
今天解决了一个之前卡了很久的:
问题
在打卡第二步,访问login.json的时候,服务器说我json格式不对。当时也试了很多,明明发的就是json object的。就是不行。
后来发现是这样的:
发送的虽然是json格式,但送出去的应该是键值对。
$.ajax({
url: "https://cybozush.cybozu.cn/api/auth/login.json",
method: "post",
data: {
"username": "bxu",
"password": "xxxxxx"
},
});
要用字符串的形式把json组织好,在放入data。这样就能发送json格式的body了。
然后出现了第二个问题:
第一步的getToken和cookie中的JSESSIONID都需要传给第二步。发现cookie取不到。
后来很简单的解决了:
第一步的cookie已经自动放进chrome的cookie管理器里面了。而且第二步不需要也不能够自己手动塞cookie的。自动就好了。
然后就初步整理了一些要做的事和一些看似鸡肋的事。例如阿黄提的伪装三次内的迟到。
以前用过的python服务端需要改造一下,建了个branch。
for_chrome_ext
整理近期可做的事,先做基本的:
服务端交互系:
本地执行系:
由于所有人都跑过一遍之后,原先的cookie虽然不一定失效,但塞回去的意义感觉也不是很大,只要把自己作为最后一个访问的人,就没有登别人账号的担心了。
美化输入文本框
借鉴了豆瓣的登录页面css
input {
border: 1px solid #DBE5DB;
border-radius: 2px;
width: 252px;
padding: 0 8px;
height: 30px;
line-height: 30px;
font-size: 12px;
margin-right: 3px;
vertical-align: middle;
-webkit-appearance: textfield;
background-color: white;
-webkit-rtl-ordering: logical;
cursor: text;
text-rendering: auto;
color: initial;
letter-spacing: normal;
word-spacing: normal;
text-transform: none;
text-indent: 0px;
text-shadow: none;
display: inline-block;
text-align: start;
font: 400 13.3333px Arial;
}
经验
原来chrome插件的localStorage只能存string的,所以json obj需要转化一下的
//存放
localStorge.sth_i_wanna_save = JSON.stringify(sth_json_obj)
//取用
var temp = JSON.parse(localStorge.sth_i_wanna_save)
apt-get install python-pip
pip install setuptools
pip install web.py
apt-get install python-lxml
经验
原来apt是要比apt-get更高级的方式。整合了一些基础的命令,较人性化。
# 这个是题外话
apt install docker.io
docker run -d -p 3000:3000 -v /path/to/my/downloads:/downloads jpillora/cloud-torrent
进度
sql + python 初步取得数据成功
没怎么开发了,都在搞ssr
今天先从复活微信响应开始。
恢复了,还是可以用的。
不过修正了一个问题,如果直接用工具发给/weixin的话,由于没带微信签名,转xml会报错,把trace信息,代码都返回给发送者了,太可怕。
Recent TODO
经验
sqlite是没有mysql的ON DUPLICATE KEY UPDATE的。 下面2个链接有讲到,但觉得replace并不是很好的选择,会替换的所有的值,不想替换要吧原来的值取一遍再填一遍,有点繁琐。 下面也有个人讲到了
I'd prefer UPDATE (+ INSERT if UPDATE fails). Less code = fewer bugs.
所以用了先更新,更新不成再新增的办法。
conn = sqlite3.connect("test.db")
c = conn.cursor()
sqlup = 'UPDATE users SET id = ? WHERE wx_id = ?'
sqlins = 'INSERT into users values(?, ?)'
try:
c.execute(sqlup, (id, wid))
if c.rowcount == 0:
c.execute(sqlins, (wid, id))
conn.commit()
except Exception, ex:
exstr = str(ex)
if exstr.find('users.id') != -1 and exstr.find('UNIQUE') != -1:
return "输入的id已经被注册了。"
c.close()
判断object是否是json object?
if (typeof(data) == "object" && Object.prototype.toString.call(data).toLowerCase() == "[object object]" && !data.length) {
// dosth
}