Hotot
Hotot copied to clipboard
Twitter June 11, 2013 API changes breaking hotot functionality
Twitter changed its API in June 11, 2013. The change in API might have caused the problem in Hotot. Hotot is not able to show the columns user tweets, mentions. May be developer need to re-implement the feature changes.
Same reason propably causing authentication error upon login attempt.
It's weird 'cause it might be fixed by 55a746c21db9fc5e2bae1ec942fb5a3c8d0eaf0f , a14885cbd94e19bda6dd395d6bcd3ba09788c505 and 76064e971ca2cd89c9c2f9e43b241c95b03243b7 . Plus, Hotot works well as a Chromium / Chrome extension.
Below is the output I receive when I run hotot -d
.
I am using hotot - version 0.9.8.7 (Ada)
As you can see data is empty and I also tried re-generating the token, but that didn't work.
[init] overlay_variables()
[init] on_load_finish()
[init] on_load_finish() -> ext.load_builtin_exts();
[Load Extension] ./ext/org.hotot.cfw/entry.js
[Load Extension] ./ext/org.hotot.gmap/entry.js
[Load Extension] ./ext/org.hotot.instapaper/entry.js
[Load Extension] ./ext/org.hotot.sample/entry.js
[Load Extension] ./ext/org.hotot.shorturl/entry.js
[Load Extension] ./ext/org.hotot.translate/entry.js
[Load Extension] ./ext/org.hotot.stat/entry.js
[Load Extension] ./ext/org.hotot.readitlater/entry.js
[Load Extension] ./ext/org.hotot.appmask/entry.js
[init] on_load_finish() -> ext.load_exts();
[init] on_load_finish() -> ext.init_exts();
[Init Extension] Hotot Content Firewall
[Init Extension] Hotot GMap
[Init Extension] Hotot Instapaper
[Init Extension] Sample
[Init Extension] Hotot Short URL
[Init Extension] Hotot Translate
[Init Extension] Hotot User Stat
[Init Extension] Hotot Readitlater
[Init Extension] AppMask
[init] on_load_finish() -> push settings
Xlib.protocol.request.QueryExtension
[init] on_load_finish() -> i18n.init()
[i18n] Use locale: en
[init] on_load_finish() -> init_ui()
[init] init_dialogs()
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 187, sequence_number = 9, major_opcode = 33, minor_opcode = 0
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 187, sequence_number = 10, major_opcode = 33, minor_opcode = 0
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 187, sequence_number = 11, major_opcode = 33, minor_opcode = 0
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 187, sequence_number = 12, major_opcode = 33, minor_opcode = 0
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 187, sequence_number = 13, major_opcode = 33, minor_opcode = 0
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 187, sequence_number = 14, major_opcode = 33, minor_opcode = 0
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 187, sequence_number = 15, major_opcode = 33, minor_opcode = 0
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 187, sequence_number = 16, major_opcode = 33, minor_opcode = 0
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 187, sequence_number = 17, major_opcode = 33, minor_opcode = 0
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 187, sequence_number = 18, major_opcode = 33, minor_opcode = 0
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 187, sequence_number = 19, major_opcode = 33, minor_opcode = 0
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 187, sequence_number = 20, major_opcode = 33, minor_opcode = 0
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 187, sequence_number = 21, major_opcode = 33, minor_opcode = 0
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 187, sequence_number = 22, major_opcode = 33, minor_opcode = 0
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 187, sequence_number = 23, major_opcode = 33, minor_opcode = 0
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 187, sequence_number = 24, major_opcode = 33, minor_opcode = 0
[init] done!
[Req] {"type":"GET","url":"https://api.twitter.com/1/account/verify_credentials.json?oauth_consumer_key=SCEdx4ZEOO68QDCTC7FFUQ&oauth_nonce=647689109435305&oauth_signature=8Wmx4MgnrIrSR2otx%2Bdq2bCFj6Y%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1371040746&oauth_token=251517626- c3PvHrHLOad5A3ENXysw3LWM2aqinbix78RLLXWY&oauth_version=1.0&source=Hotot","data":{}}
It's because Hotot's using the old API https://api.twitter.com/1/ instead of the new one https://api.twitter.com/1.1/ .
Tried forcing it to use the 1.1 API and while it does somewhat work, some functionality is broken and results in Hotot constantly spamming notifications regarding the errors (probably because the API is not fully backwards compatible so some functions are changed or missing).
I saw this though and I'm confused: https://github.com/lyricat/Hotot/pull/500 Does Hotot support the 1.1 API or not?
I think it does. Do you use the ppa version ? Have you tried to compile it ?
Redownloaded from PPA (looks like I had added the wrong repo before), but nope, it still insists on using the 1.0 API, even if I change the address to the 1.1 one. The Hotot version is reported as 0.9.8.10... site says 0.9.8.5 is the newest? I guess the version actually reported is 0.9.8.1?
I'd rather not have to compile anything if possible XD (even if I technically can, I'm just outright lazy)
Whoops, it's probably 0.9.8.10, for some stupid reason I thought the latest update in the home page was from 2013, not 2012. Oh well, still, that should tell you which API it's supposed to be using.
As far as I could test, the latest tag, 0.9.8.14 does is still affected from the API issue (or maybe my token is ist not valid after downgrade). The latest commit (may 14th) works fine. Any chance to get an new release 0.9.8.15 tagged officially? I just pushed the mentioned commit into Gentoo. Thanks
I downloaded the latest sources from git and build sources for ubuntu from scratch and now it seems to work fine. :+1: for the hotot team :)
http://www.samundra.com.np/twitter-api-changes-breaking-hotot-functionality/1224 a blog post on how to compile hotot from sources with screenshots.The instructions is for Ubuntu only.
Compiling ourselves is a solution but I think that we have to do something more here. I'll try to contact csslayer who is the ppa's maintainer.
@samundra : I read your article and you've made a little mistake make sudo make install
instead of sudo make install
Yeah, I would agree, with 1.0 officially dead and most users not going to bother compiling by themselves, making sure that there's at least a version supporting 1.1 that can be downloaded and used as-is is definitely a good idea. It's also probably a good idea to get distros to update Hotot in their own repos since their versions don't work anymore either (at least in the case of Ubuntu it's still stuck to the 1.0 API).
@Simounet Thank you for pointing out the mistake. It has been fixed.
@sikthehedgehog I totally agree with you and every distro should have updated hotot sources.
So, this an issue with the PPA package and not really with Hotot, right? Maybe these issues should be closed?
Technically it is, but given how important the issue is (the PPA packages don't work at all), maybe it's worth considering that part of the "bug" and keeping this report around until it's updated.
Yep, as I said before, I'm trying to contact the package manager. So I think this issue must stay open for now.
@Simounet would a ticket noting it being an outdated PPA issue not be a better idea seeing as 0.9.8.15 works?
@grrrrr tested Hotot - version 0.9.8.14 (Ada) and it works smoothly. Don't know about 0.9.8.15 haven't tested it yet.
Any news with the PPA? (or any downloadable binary, for that matter)
Ok, version 0.9.8.14 (compiled from source) work. There is no version 0.9.8.15 tagged or released yet.
@sikthehedgehog I contacted the PPA's maintainer through Launchpad. I keep you posted.
@Simounet Any news?
No... I don't know what we can do except create a new PPA but I don't think it's a solution to publish a new source. I tried to join the guy throught Launchap & IRC. I didn't receive any answer. I think @lyricat is the last option to do the right move but if he didn't reply here for now, it's probably a bad sign. :/
Thanks. Has anyone tried to email @lyricat ? He seems to be online and active (twitter and blog).
I'll try that.
I've still no news from @lyricat . I send a mail to his Gmail address 2 days ago. :(
I guess somebody should go ahead and host pre-built binaries somewhere at least until the repos get over it?
Probably a bug, but worth mentioning it in this thread because it can be a safety issue in some countries:
I compiled Hotot according to the blogpost from samundra http://www.samundra.com.np/twitter-api-changes-breaking-hotot-functionality/1224. It's running on a Kubuntu 12.04 system, and everything seems to run fine.
However, it seems that Hotot doesn't honour its own proxy-settings. Even more strange, under preferences sometimes the proxy-settings part shows up, sometimes it doesn't. This can be a safety issue, if people in certain countries expect to tweet via a proxy while in fact they aren't.
This is not the same issue as https://github.com/lyricat/Hotot/issues/554
That should be its own bug report if it isn't something else, really. This thread is about Hotot builds still using the 1.0 API which has been shut down, nothing to do with proxies.
'if it isn't something else', well, that's the thing...
Since everyone is waiting for a reaction of lyricat on the efforts of Simounet, everything has come to a standstill. Therefore many will eventually compile Hotot themselves via the guide of Samundra. By doing that, you'll probably end up with Hotot not honouring its own proxy.
I know that if it's a fault in the source itself, it would require its own bug report. But if it is caused by a fault during compiling (remember, you have to ignore some errors) it would not be an actual bug in the source. My technical knowledge about that is not big enough to clearly determine that.
Since this temporary solution was given in THIS thread, i thought it would be useful to mention it here. Particularly, since it can be a security issue if someone thinks he/she is tweeting via a proxy (TOR?), while in fact that is not the case. You can check it by entering a fake proxy address, and see whether you can still connect to twitter or not.