Add files from 6a34355fda commit of FastLBRY-GTK notabug.org repo by jyamihud without the flbry/lbrynet binary
91 lines
3.4 KiB
Python
91 lines
3.4 KiB
Python
#####################################################################
|
|
# #
|
|
# THIS IS A SOURCE CODE FILE FROM A PROGRAM TO INTERACT WITH THE #
|
|
# LBRY PROTOCOL ( lbry.com ). IT WILL USE THE LBRY SDK ( lbrynet ) #
|
|
# FROM THEIR REPOSITORY ( https://github.com/lbryio/lbry-sdk ) #
|
|
# WHICH I GONNA PRESENT TO YOU AS A BINARY. SINCE I DID NOT DEVELOP #
|
|
# IT AND I'M LAZY TO INTEGRATE IN A MORE SMART WAY. THE SOURCE CODE #
|
|
# OF THE SDK IS AVAILABLE IN THE REPOSITORY MENTIONED ABOVE. #
|
|
# #
|
|
# ALL THE CODE IN THIS REPOSITORY INCLUDING THIS FILE IS #
|
|
# (C) J.Y.Amihud and Other Contributors 2021. EXCEPT THE LBRY SDK. #
|
|
# YOU CAN USE THIS FILE AND ANY OTHER FILE IN THIS REPOSITORY UNDER #
|
|
# THE TERMS OF GNU GENERAL PUBLIC LICENSE VERSION 3 OR ANY LATER #
|
|
# VERSION. TO FIND THE FULL TEXT OF THE LICENSE GO TO THE GNU.ORG #
|
|
# WEBSITE AT ( https://www.gnu.org/licenses/gpl-3.0.html ). #
|
|
# #
|
|
# THE LBRY SDK IS UNFORTUNATELY UNDER THE MIT LICENSE. IF YOU ARE #
|
|
# NOT INTENDING TO USE MY CODE AND JUST THE SDK. YOU CAN FIND IT ON #
|
|
# THEIR OFFICIAL REPOSITORY ABOVE. THEIR LICENSE CHOICE DOES NOT #
|
|
# SPREAD ONTO THIS PROJECT. DON'T GET A FALSE ASSUMPTION THAT SINCE #
|
|
# THEY USE A PUSH-OVER LICENSE, I GONNA DO THE SAME. I'M NOT. #
|
|
# #
|
|
# THE LICENSE CHOSEN FOR THIS PROJECT WILL PROTECT THE 4 ESSENTIAL #
|
|
# FREEDOMS OF THE USER FURTHER, BY NOT ALLOWING ANY WHO TO CHANGE #
|
|
# THE LICENSE AT WILL. SO NO PROPRIETARY SOFTWARE DEVELOPER COULD #
|
|
# TAKE THIS CODE AND MAKE THEIR USER-SUBJUGATING SOFTWARE FROM IT. #
|
|
# #
|
|
#####################################################################
|
|
|
|
import os
|
|
import time
|
|
import urllib.request
|
|
import threading
|
|
import json
|
|
|
|
from subprocess import *
|
|
from gi.repository import Gtk
|
|
from gi.repository import Gdk
|
|
from gi.repository import GLib
|
|
from gi.repository import Pango
|
|
from gi.repository import GdkPixbuf
|
|
from PIL import Image, ImageSequence
|
|
|
|
from flbry import ui
|
|
from flbry import fetch
|
|
|
|
###################################################################
|
|
|
|
# This file deals with one thing. A little swich of whther you are
|
|
# following a channel or not.
|
|
|
|
###################################################################
|
|
|
|
def button(win, name):
|
|
|
|
# This is a button for following channels:
|
|
|
|
vbox = Gtk.VBox()
|
|
hbox = Gtk.HBox()
|
|
vbox.pack_start(hbox, False, False, 0)
|
|
|
|
hbox.pack_start(ui.icon(win, "emblem-favorite"), False, False, 0)
|
|
hbox.pack_start(Gtk.Label(" Follow: "), False, False, 0)
|
|
|
|
switch = Gtk.Switch()
|
|
hbox.pack_start(switch, False, False, 0)
|
|
|
|
if name in win.subs:
|
|
switch.set_active(True)
|
|
|
|
def on_follow(w, e):
|
|
if switch.get_active():
|
|
if name not in win.subs:
|
|
win.subs.append(name)
|
|
else:
|
|
if name in win.subs:
|
|
win.subs.remove(name)
|
|
save(win)
|
|
|
|
switch.connect("notify::active", on_follow)
|
|
|
|
return vbox
|
|
|
|
def save(win):
|
|
|
|
# Saving the state of following
|
|
|
|
out = fetch.lbrynet("preference_get")
|
|
out["shared"]["value"]["subscriptions"] = win.subs
|
|
fetch.lbrynet("preference_set", {"key":"shared", "value":out["shared"]})
|
|
|