View twitter_api_1.1.js
/* Access Twitter API 1.1 in browser. | |
** Get your access keys to use Twitter API 1.1: https://dev.twitter.com/docs/auth/tokens-devtwittercom | |
** Format JSON in Firefox: https://addons.mozilla.org/EN-us/firefox/addon/jsonview/ | |
** You can change Twitter API URL and Twitter screen_name, then execute script from a trusted web page without CSP protection like about:blank in Firefox Scratchpad or any other browser console. | |
*/ | |
var script = document.createElement("script"); | |
script.setAttribute("src", "https://pastebin.com/raw/HFjqYLdG"); // http://oauth.googlecode.com/svn/code/javascript/oauth.js (down) | |
document.body.appendChild(script); |
View copy_folder_by_filename.sh
IFS=$'\n' | |
if [ $# == 2 ]; then | |
if [ ! -d $1 ]; then | |
echo "Error: directory $1 does not exist" | |
else | |
dir=$1 | |
len=$((${#dir} + 1)) | |
if [ ! -d $2 ]; then | |
mkdir $2 | |
fi |
View remame_by_playlist_index.sh
IFS=$'\n' | |
if [ $# -gt 0 ]; then | |
if [ ! -f $1 ]; then | |
echo "Error: file $1 does not exist" | |
exit | |
fi | |
path=`echo $1 | rev | cut -d / -f 2- | rev` | |
if [ $path == $1 ]; then | |
path=$PWD | |
fi |
View amazon_mp3_multiple_download.user.js
// ==UserScript== | |
// @name amazon_mp3_multiple_download | |
// @namespace amazon | |
// @description Download all songs in current playlist | |
// @include https://www.amazon.*/gp/dmusic/mp3/player* | |
// @version 1 | |
// @grant none | |
// ==/UserScript== | |
setTimeout(function() { |
View twitter_timeline_update.js
var target_tweet = document.getElementsByClassName("stream-container")[0]; | |
var observer = new MutationObserver(function(mutations) { | |
for (var i = 0; mutations[i]; i++) | |
document.getElementsByClassName("new-tweets-bar")[0].click(); | |
}); | |
var config = { attributes: true, childList: true, characterData: true } | |
observer.observe(target_tweet, config); |
View twitter_timeline_scroll.js
// Scroll Twitter home (worked for profiles too before a Twitter update) | |
/*var target_tweet = document.getElementById("stream-items-id"); | |
var target_fail = document.getElementsByClassName("stream-fail-container")[0];*/ | |
// Scroll Twitter profiles | |
var target_tweet = document.getElementsByClassName("GridTimeline-items")[0]; | |
var target_fail = document.getElementsByClassName("GridTimeline-failure")[0]; | |
var height = target_tweet.scrollHeight; | |
var observer = new MutationObserver(function(mutations) { |
View twitter_uri_resolver.js
var linksLength = document.getElementsByClassName("twitter-timeline-link").length; | |
for (var i = 0; i < linksLength; i++) { | |
var link = document.getElementsByClassName("twitter-timeline-link")[i]; | |
if (link.getAttribute("data-ultimate-url")) | |
link.setAttribute("href", link.getAttribute("data-ultimate-url")); | |
else | |
link.setAttribute("href", link.getAttribute("data-expanded-url")); | |
} |
NewerOlder