

It was XFire -> TS -> Vent -> Skype -> Discord for me.
It was XFire -> TS -> Vent -> Skype -> Discord for me.
Guilty until proven innocent.
I have an old rig for old games and I still have Win7 SP1 installed on that. It never gets updates as it’s not connected to the internet. I know everything works there and thus it is now a time capsule. Never change a running system lol
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.
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);
}
}
);
}
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.
Awesome, works with VLC as well. Thanks.
Downside is that you’ll have to regularly delete all the videos you’ve downloaded.
Being able != being willing.
The Russian spy penguins all run their own homebrew OS developed by Putin himself.
Delete the current LICENSE file in your repository and replace it with the new one.
You don’t have to put your name, year etc anywhere, the license is valid for the entire repo. You are not filing for an IP, it’s just a usage license.
Note that all the legal jargon is not necessary, you can write one yourself as long as you make it clear what you allow and what you don’t allow.
I.e. “don’t be a dick” requires elaboration, “do not use my code if you intend to make money off of it or parts of it” is clear and legally binding.
The reviewers in the 3rd world country are the ones who have to deal with the appeal. I guarantee you that the removal was some form of automated system. No human review is required for deletion from the playstore. The idea behind ithat is that legitimate app developers will appeal in cases where the automated system fucks up whereas the conmen will not.
“We and our 6472 vendors value your privacy.”
Why am I hesitant to believe they do?
UK is not EU, so EU law does not apply.
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.
Aww, thanks.