Ein Pull-Anforderung, wie auf der github Repository auf 2012-05-31 fusioniert worden, um die Einführung von twttr.txt.getTweetLength (Text, Optionen) Funktion, die Berücksichtigung nimmt t.co URLs und definiert wie folgt:
twttr.txt.getTweetLength = function(text, options) {
if (!options) {
options = {
short_url_length: 22,
short_url_length_https: 23
};
}
var textLength = text.length;
var urlsWithIndices = twttr.txt.extractUrlsWithIndices(text);
for (var i = 0; i < urlsWithIndices.length; i++) {
// Subtract the length of the original URL
textLength += urlsWithIndices[i].indices[0] -urlsWithIndices[i].indices[1];
// Add 21 characters for URL starting with https://
// Otherwise add 20 characters
if (urlsWithIndices[i].url.toLowerCase().match(/^https:\/\//)) {
textLength += options.short_url_length_https;
} else {
textLength += options.short_url_length;
}
}
return textLength;
};
so wird Ihre Funktion nur werden:
function charactersleft(tweet) {
return 140 - twttr.txt.getTweetLength(tweet);
}
plus die besten Praktiken mit t.co bezüglich wir die short_url_length und short_url_length_https Werte von twitter abrufen und verwenden sie als Optionen Parameter im twttr.txt geben .getTweetLength-Funktion:
Fordern Sie GET-Hilfe/Konfiguration einmal täglich in Ihrer Anwendung an und speichern Sie die "short_url_length" (t.co's aktuelle maximale Länge) für 24 Stunden. Cache "short_url_length_https" (die maximale Länge für HTTPS-basierte t.co-Links) und diese als Länge von HTTPS-basierten URLs verwenden. Insbesondere wissen, dass einige Änderungen in der Länge der t.co URLs am 2013-02-20 wie im Twitter Developer Blog beschrieben
wirksam werden Wenn Sie Länge von Text berechnen möchten, dann warum nicht einfach 'text.length '? – Moin
@Moin Twitter wickelt alle URLs in einem Tweet in t.co kurze URLs. Also muss ich die Länge des Tweets vor dem Senden an Twitter berechnen. – Dharmendra
Verwenden Sie die neueste Version von hier https://github.com/twitter/twitter-text/tree/master/js/pkg? – morloch