@forestsheep
2018-01-04T01:10:51.000000Z
字数 2608
阅读 350
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-pippip install setuptoolspip install web.pyapt-get install python-lxml
经验
原来apt是要比apt-get更高级的方式。整合了一些基础的命令,较人性化。
# 这个是题外话apt install docker.iodocker 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}