Skip to content

Instantly share code, notes, and snippets.

Created June 16, 2015 17:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/65ef8ff3669eb7a3c2d0 to your computer and use it in GitHub Desktop.
Save anonymous/65ef8ff3669eb7a3c2d0 to your computer and use it in GitHub Desktop.
// ==UserScript==
// @name Voat subverses header
// @author Horza
// @date 16 june 2015
// @description Replaces subverse list
// @include *voat.co*
// @version 1.1
// @grant GM_getValue
// @grant GM_setValue
// @run-at document-end
// @require https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
// ==/UserScript==
'use strict';
var data = {};
(function () {
data.regexp = new RegExp(/voat\.co\/v\/([\w\d]*)/);
data.subverseName = GetSubverseName();
data.isPageSubverse = isPageSubverse();
DisplayCustomSubversesList();
if (data.isPageSubverse)
{ AppendButton(); }
}).call(this);
function DisplayCustomSubversesList() {
var SubString = '';
var subArr = GetSubversesList();
for (var idx in subArr) {
SubString += '<li><span class="separator">-</span><a href="/v/' + subArr[idx] + '/">' + subArr[idx] + '</a></li>';
}
$('ul#sr-bar').html(SubString);
}
function GetSubversesList() {
var subversesArr = GM_getValue("Voat_Subverses");
if (subversesArr == undefined) {
subversesArr = "newsubverses,introductions,news"
GM_setValue("Voat_Subverses", subversesArr);
}
return subversesArr.split(',');
}
function isPageSubverse() {
if (data.subverseName != null)
{ return true; }
return false;
}
function GetSubverseName() {
var m = data.regexp.exec(window.location.href);
if (m == null) { return null; }
else { return m[1].toLowerCase(); }
}
function AppendButton() {
if (!isPageInShortcuts()) {
var btnHTML = '<button id="GM_Shortcut" type="button" class="btn-whoaverse-paging btn-xs btn-default btn-sub">+ shortcut</button>';
}
else {
var btnHTML = '<button id="GM_Shortcut" type="button" class="btn-whoaverse-paging btn-xs btn-default">- shortcut</button>';
}
if ($(".btn-whoaverse-paging.btn-xs.btn-default.btn-unsub").length){
$(btnHTML).insertAfter(".btn-whoaverse-paging.btn-xs.btn-default.btn-unsub");
}
else {
$(btnHTML).insertAfter(".btn-whoaverse-paging.btn-xs.btn-default.btn-sub");
}
}
$('#GM_Shortcut').click(function() {
if (isPageInShortcuts()) {
RemoveFromShortcuts(data.subverseName);
}
else {
AddToShortcuts(data.subverseName);
}
DisplayCustomSubversesList();
});
function isPageInShortcuts() {
var subversesArr = GetSubversesList();
for (var i in subversesArr) {
if (subversesArr[i] == data.subverseName) {
return true;
}
}
return false;
}
function AddToShortcuts(SubName) {
var subversesArr = GetSubversesList();
var str = subversesArr.join(",") + "," + SubName;
GM_setValue("Voat_Subverses", str);
ToggleButton(false);
}
function RemoveFromShortcuts(SubName) {
var subversesArr = GetSubversesList();
var idx = subversesArr.indexOf(SubName);
subversesArr.splice(idx, 1);
GM_setValue("Voat_Subverses", subversesArr.join(","));
ToggleButton(true);
}
function ToggleButton(state) {
if (state == true) {
$("#GM_Shortcut").text('+ shortcut');
$("#GM_Shortcut").addClass('btn-sub')
}
else {
$("#GM_Shortcut").text('- shortcut');
$("#GM_Shortcut").removeClass('btn-sub');
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment