• 0 Posts
  • 16 Comments
Joined 2Y ago
cake
Cake day: Jul 03, 2023

help-circle
rss

It was XFire -> TS -> Vent -> Skype -> Discord for me.



So calling minorities “vermin” and making up shit about immigrants eating the pets of US citizens is a “tiny transgression”? No, that is text book nazi propaganda fueled by hate and endorsed by idiots.


Our license plates look like this: 2/3-letter city identifier - 1/2 letters you can choose - a 1-4 digit number you can choose. A friend of mine has the initials A.H. and was born in 1988. He wanted CITY - AH - 88. Registration did not allow it as it’s nazi dog whistling.

Dog whistling is very common to find like-minded fascists and nazis. Kind of a sad, pathetic life if you think about it.


I wrote myself a Chrome add-on that adds a context menu entry to play or download links.

background.js
chrome.runtime.onInstalled.addListener(() => {
		
    chrome.contextMenus.create({
        id: "processLink",
        title: "Download as...",
        contexts: ["link"]
    });

    chrome.contextMenus.create({
        id: "720p",
        parentId: "processLink",
        title: "720p",
        contexts: ["link"]
    });

    chrome.contextMenus.create({
        id: "music",
        parentId: "processLink",
        title: "MP3",
        contexts: ["link"]
    });

    chrome.contextMenus.create({
        id: "maxQual",
        parentId: "processLink",
        title: "Maximum quality video",
        contexts: ["link"]
    });
	
    chrome.contextMenus.create({
        id: "separator1",
        parentId: "processLink",
        type: "separator",
        contexts: ["link"]
    });

    chrome.contextMenus.create({
        id: "piQual",
        parentId: "processLink",
        title: "30 fps for RPi",
        contexts: ["link"]
    });
	
    chrome.contextMenus.create({
        id: "separator2",
        parentId: "processLink",
        type: "separator",
        contexts: ["link"]
    });
	
    chrome.contextMenus.create({
        id: "streamLink",
        parentId: "processLink",
        title: "Stream to VLC...",
        contexts: ["link"]
    });
});

chrome.contextMenus.onClicked.addListener((info, tab) => {
    let linkUrl = info.linkUrl;

    if (info.menuItemId === "720p") {
        sendLinkToNativeApp(linkUrl, "video720");
    } else if (info.menuItemId === "music") {
        sendLinkToNativeApp(linkUrl, "music");
    } else if (info.menuItemId === "maxQual") {
        sendLinkToNativeApp(linkUrl, "videomp4");
    } else if (info.menuItemId === "piQual") {
        sendLinkToNativeApp(linkUrl, "video720p30");
    } else if (info.menuItemId === "streamLink") {
        sendLinkToNativeApp(linkUrl, "stream");
    }
});

function sendLinkToNativeApp(link, action) {
    console.log("Sending link to native app with action:", action, link);
    chrome.runtime.sendNativeMessage(
        'com.example.ytlink_processor',
        { link: link, action: action },
        function(response) {
            if (chrome.runtime.lastError) {
                console.error("Error:", chrome.runtime.lastError.message);
            } else {
                console.log("Received response from native app:", response.output);
            }
        }
    );
}
native_host.py (chatGPT wrote this because I can't Python)
import sys
import subprocess
import json
import struct

def log_to_file(message):
    with open("log.txt", "a") as log_file:
        log_file.write(message + "\n")

def get_message():
    raw_length = sys.stdin.read(4)
    if len(raw_length) == 0:
        sys.exit(0)
    message_length = struct.unpack('I', raw_length)[0]
    message = sys.stdin.read(message_length)
    return json.loads(message)

def send_message(message_content):
    message = json.dumps(message_content)
    sys.stdout.write(struct.pack('I', len(message)))
    sys.stdout.write(message)
    sys.stdout.flush()

def process_link(link, action):
    if action == "stream":
        cmd = 'yt-dlp --stream "{}" -o - | "D:/Programme/VLC/vlc.exe" -'.format(link)
    else:
        cmd = 'yt-dlp --{} "{}"'.format(action, link)
    result = subprocess.Popen('start cmd /c "{}"'.format(cmd), shell=True)
    return result.stdout + result.stderr

if __name__ == "__main__":
    message = get_message()
    link = message.get("link")
    action = message.get("action")
    if link and action:
        output = process_link(link, action)
        send_message({"output": output})

The actions are just aliases for different qualities (old pi, so 720p60 stutters at times), audio extraction, etc.



yt-dlp

Downside is that you’ll have to regularly delete all the videos you’ve downloaded.



I would reply with something like “Arrrr matey” but new games aren’t even worth pirating anymore.



Good alternatives? I like their mail client and the possibility for aliases that I can generate and lock once they get spammed with newsletters.


All crypto-currencies are overhyped, almost cult-like trash that do nothing but create problems and waste energy. The whole lot of them, no exceptions and they will all fade away eventually, when the fad moves on.


This is not a stop-and-ID state, officer.


To me it sounds like a racist, homophobic Southern US citizen that likes to tote their guns and “defend” their property through the Castle doctrine because freedom (fuck yeah!).

Actually the perfect encapsulation of the brainrot on reddit.


Not even bad. The text is not a jab at OP, just a random thing that was in my head lol