-
-
Save Prof9/c16fc4997e0ef5b22a15c43edd7f5f49 to your computer and use it in GitHub Desktop.
// ==UserScript== | |
// @name Twitter Cramming | |
// @description Force enable cramming (280 character tweets) on Twitter | |
// @author Prof. 9 | |
// @version 0.1 | |
// @match https://twitter.com/* | |
// @run-at document-idle | |
// @namespace prof9.twittercramming | |
// ==/UserScript== | |
var initDataInput = document.getElementById('init-data'); | |
var initData = JSON.parse(initDataInput.value); | |
initData.deciders.cramming_feature_enabled = true; | |
initData.deciders.cramming_ui_enabled = true; | |
initDataInput.value = JSON.stringify(initData); | |
// This is free and unencumbered software released into the public domain. | |
// | |
// Anyone is free to copy, modify, publish, use, compile, sell, or | |
// distribute this software, either in source code form or as a compiled | |
// binary, for any purpose, commercial or non-commercial, and by any | |
// means. | |
// | |
// In jurisdictions that recognize copyright laws, the author or authors | |
// of this software dedicate any and all copyright interest in the | |
// software to the public domain. We make this dedication for the benefit | |
// of the public at large and to the detriment of our heirs and | |
// successors. We intend this dedication to be an overt act of | |
// relinquishment in perpetuity of all present and future rights to this | |
// software under copyright law. | |
// | |
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | |
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. | |
// IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR | |
// OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, | |
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | |
// OTHER DEALINGS IN THE SOFTWARE. | |
// | |
// For more information, please refer to <http://unlicense.org> |
doesn't work here (France)
edit : works after clearing cache
not work for me, in web console appear this error
ERROR: Execution of script 'Twitter Cramming' failed! initDataInput is null
I'm using Firefox Nightly 58.0a1
In CJK (Chinese, Japanese, Korean) and other language, cannot tweet long text.
So I made a CJK patch.
https://gist.github.com/if1live/bc4750c0d4585789b66d899129ecb9ad
Cause
- code 0~4351 : weight 100
- code 4352~65535 : weight 200
ab
is in code 0 ~ 4351, total weight is 100 x 2 = 200.
가
is in code 4352 ~ 65535, total weight is 200 x 1 = 200.
double weight means half length.
https://abs.twimg.com/k/en/0.commons.en.e6c61ddd975ec97b1ee5.js
, r = o({}, a, {
version: "cramming",
max_tweet_length: 280,
default_weight: 200,
ranges: [{
start: 0,
end: 4351,
weight: 100
}, {
start: 4352,
end: 65535,
weight: 200
}]
})
Solution
Access above config(TwitterTextOptions), then modify weight 200 to 100.
NOW I CAN POST 280-CHARACTER TWEETS IN JAPANESE
JACK KNOWS NOT WHAT POWER HE HAS HANDED ME
MUAHAHAHAHA
emoji is not in their char code because it based on 2 or more chars (surrogate-pair).
Ex: 😇 is 55357 + 56839
And some japanese kanji has same issue (𠮷、𩸽、and some……)
but Twitter API count that as 1 char. with default_weight: 100
, it will be fixed.
https://gist.github.com/hinaloe/c2381b1370371f5d9a4bb2be190f9c66
It does work as intended, but the character counter seems to be broken.
Either way, thanks for making this simple to use!
@colemickens, I have just put the TweetDeck version in a Userscript if that is any use. It is a bit messy/hacky but it works. https://gist.github.com/erydactyl/8ac7fe290a5ea72706cc1b77d15163d9
I want to large it 280
https://goo.gl/Yms5au
Hi,
I've just hacked a version that survives switching pages.
No more refreshing,this is 2017 after all.
https://gist.github.com/LongHairedHacker/2b4e2a526f02906acbafe39229176b08
Feel free to integrate that here.
Cant get either of these to work :(
doesn't work anymore :/
Broken
Yep, Twitter rolled out a fix. You'll have to try one of the other methods out there to get your tweet on.
Here are some that work for TweetDeck:
Damn snitches
Are there any hacks for Tweetbot?
nothing here works... :-(( still at 140
off
Not work
wait, so is this working
Frustrated that like most I was not blessed with the new 280 char tweeting, and the "fixes" out there don't work anymore, I decided to fix :) As as a fully automatic #Greasemonkey #Tampermonkey script here: http://bit.ly/unlock280 Get your #280tweets on while you can! :)
@CollinChaffin Thanks Man, this works like a charm!
@CollinChaffin You, sir, are the man of the situation.
@CollinChaffin Thank you, You sir are awesome! 👍
Looks like the party's over
No longer working - Like us, The good folks at @twitter appear to have found a workround for this. It was fun while it lasted :)
sir, are the man of the situation.
12
TD.services.TwitterClient.prototype.makeTwitterCall=function(b,e,f,g,c,d,h){c=c||function(){};d=d||function(){};b=this.request(b,{method:f,params:Object.assign(e,{weighted_character_count:!0}),processor:g,feedType:h});return b.addCallbacks(function(a){c(a.data)},function(a){d(a.req,"",a.msg,a.req.errors)}),b};
twttrTxt=Object.assign({},twttr.txt,{isInvalidTweet:function(){return!1},getTweetLength:function(){return twttr.txt.getTweetLength.apply(this,arguments)-140}});
Your Tweet was over 140 characters. You'll have to be more clever. .. Well that's no fun :/
Nope. This refuse to work for me :(