Skip to content

Instantly share code, notes, and snippets.

View EkkoG's full-sized avatar

Ekko EkkoG

View GitHub Profile
@EkkoG
EkkoG / main.py
Created December 19, 2023 03:34
import transmissionrpc
import argparse
def main(tc):
# get session stats
stats = tc.session_stats()
def printttt(s):
print(f"总活动时间: {s['secondsActive'] / 86400:.2f} 天")
print(f"总上传量: {s['uploadedBytes'] / 1024 / 1024 / 1024:.2f} GB")
@EkkoG
EkkoG / clash_example.yaml
Created March 24, 2023 15:18
clash_example.yaml
# Port of HTTP(S) proxy server on the local end
port: 7890
# Port of SOCKS5 proxy server on the local end
socks-port: 7891
# Transparent proxy server port for Linux and macOS (Redirect TCP and TProxy UDP)
# redir-port: 7892
# Transparent proxy server port for Linux (TProxy TCP and TProxy UDP)
@EkkoG
EkkoG / upgrade_cfw_core.sh
Last active July 10, 2022 08:49
A script used to replace Clash core with Clash.Meta core for Clash For Windows.
#!/bin/bash
DEST="/Applications/Clash for Windows.app/Contents/Resources/static/files/darwin/x64/clash-darwin"
VERSION=v1.12.0
ARCH=
if [[ $(uname -m) == 'arm64' ]]; then
ARCH=arm64
else
ARCH=amd64
@EkkoG
EkkoG / gist:7da9cfe60d3bee32f40248da5066f964
Created May 17, 2022 07:15 — forked from amelnikov78/gist:9f74971b591cd837e0690208ef86849f
Swift extensions *can* add stored properties
/////////////////////////////////////////////////////
import Foundation
func associatedObject<ValueType: AnyObject>(
base: AnyObject,
key: UnsafePointer<UInt8>,
initialiser: () -> ValueType)
-> ValueType {
if let associated = objc_getAssociatedObject(base, key)
as? ValueType { return associated }
let associated = initialiser()
@EkkoG
EkkoG / hd.txt
Last active March 9, 2022 04:44
All WWDC 2015 sessions download URL (video subtitle: https://github.com/qiaoxueshi/WWDC_2015_Video_Subtitle)
http://devstreaming.apple.com/videos/wwdc/2015/217wu453thu1r1/217/217_hd_adopting_new_trackpad_features.mp4?dl=1
http://devstreaming.apple.com/videos/wwdc/2015/2267p2ni281ba/226/226_hd_advanced_nsoperations.mp4?dl=1
http://devstreaming.apple.com/videos/wwdc/2015/233l9q8hj9mw/233/233_hd_advanced_touch_input_on_ios.mp4?dl=1
http://devstreaming.apple.com/videos/wwdc/2015/224o6pqmtb4ik/224/224_hd_app_extension_best_practices.mp4?dl=1
http://devstreaming.apple.com/videos/wwdc/2015/2048w4vdjhe1i1m/204/204_hd_apple_watch_accessibility.mp4?dl=1
http://devstreaming.apple.com/videos/wwdc/2015/232f1zopzycv/232/232_hd_best_practices_for_progress_reporting.mp4?dl=1
http://devstreaming.apple.com/videos/wwdc/2015/213w6grumlfm0q/213/213_hd_building_apps_with_researchkit.mp4?dl=1
http://devstreaming.apple.com/videos/wwdc/2015/234reaz1byqc/234/234_hd_building_document_based_apps.mp4?dl=1
http://devstreaming.apple.com/videos/wwdc/2015/2313dt427pmq/231/231_hd_cocoa_touch_best_practices.mp4?dl=1
http://devstreaming.apple.com/vide
#!/bin/bash
check_cmd() {
if ! command -v $1 > /dev/null
then
echo "<$1> could not be found"
if ! command -v brew > /dev/null
then
echo "<brew> could not be found"
echo "Please install Homebrew first"
@EkkoG
EkkoG / ProtocolNotofication.swift
Created December 15, 2021 10:50 — forked from pofat/ProtocolNotofication.swift
Deal with notification with protocol-oriented programing in Swift
//: Playground - noun: a place where people can play
import UIKit
// This is for dmoe, you can use a generice type to limit your observer to an UIViewController for common usage.
typealias NotifiableExecuteBlock = (Notification) -> Void
protocol Notifiable {
var name: Notification.Name { get }
func observe(by observer: Any, withSelector selector: Selector, object: Any?)
func observe(with object: Any?, using block: @escaping NotifiableExecuteBlock)
@EkkoG
EkkoG / keybase.md
Last active November 25, 2021 14:09

Keybase proof

I hereby claim:

  • I am EkkoG on github.
  • I am cielpy (https://keybase.io/cielpy) on keybase.
  • I have a public key whose fingerprint is 9297 A80C AFDD 5466 5A0F 6349 E471 9567 F093 EC19

To claim this, I am signing this object:

extension KeyedEncodingContainer {
public mutating func encode<T>(_ value: T, forKey key: KeyedEncodingContainer<K>.Key) throws where T : NSCoding {
let data = try NSKeyedArchiver.archivedData(withRootObject: value, requiringSecureCoding: false)
try encode(data, forKey: key)
}
}
extension KeyedDecodingContainer {
public func decode<T>(_ type: T.Type, forKey key: KeyedDecodingContainer<K>.Key) throws -> T? where T : NSCoding {
@EkkoG
EkkoG / allow_folx.sh
Last active September 26, 2021 14:18
defaults write com.google.Chrome URLAllowlist -array-add -string "openinfolx3://*"
defaults write com.microsoft.Edge URLAllowlist -array-add -string "openinfolx3://*"