Skip to content

Instantly share code, notes, and snippets.

Avatar

Ruqi liruqi

View GitHub Profile
@liruqi
liruqi / i.sh
Last active May 14, 2020
x-wrt
View i.sh
# https://github.com/x-wrt/x-wrt.github.io/tree/master/docs/install-on-vps
# Aliyun install script
if [ ! -f /root/x-wrt.img.gz ]; then
wget -O /root/x-wrt.img.gz --no-check-certificate https://downloads.x-wrt.com/rom/x-wrt-8.0-b202005101652-x86-64-generic-ext4-combined.img.gz
sed -i "s/errors\=remount-ro/ro/g" /etc/fstab
reboot
fi
vda1=`df -h|awk '{ if ($6 == "/") print $1 }'`
View LRUCache.py
class LRUCache(collections.OrderedDict):
def __init__(self, capacity: int):
self.maxsize = capacity
def get(self, key: int) -> int:
if key in self:
value = super().__getitem__(key)
self.move_to_end(key)
@liruqi
liruqi / extract-testflight.js
Created Oct 10, 2018 — forked from creaoy/extract-testflight.js
Extract TestFlight user email addresses from iTunes Connect
View extract-testflight.js
//Make sure you scroll down to get all data loaded
var text = '';
$('.col-email').each(function(index,el) {
if (index == 0) {
text = 'Email, First Name, Last Name\n';
}
else {
//Email
text = text + $.trim($(el).find("a").text()) + ',';
//First Name
@liruqi
liruqi / ssserver.sh
Last active Aug 9, 2018
shadowsocks server setup
View ssserver.sh
#Ubuntu 16.04
apt install -y python-pip
apt install -y libsodium-dev
pip install https://github.com/shadowsocks/shadowsocks/archive/master.zip
@liruqi
liruqi / iptables.conf
Created Apr 11, 2018
iptables disable non-http(s) traffic
View iptables.conf
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -p tcp -j REJECT --reject-with tcp-reset
iptables -A FORWARD -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -p tcp --dport 443 -j ACCEPT
iptables -A FORWARD -p tcp -j REJECT --reject-with tcp-reset
@liruqi
liruqi / checkExpiredDomains.py
Created Dec 18, 2017
Check expired domains
View checkExpiredDomains.py
import socket
import pprint
import sys
import os
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--input', default='')
parser.add_argument('--output', default='output.txt')
args = parser.parse_args()
@liruqi
liruqi / worker nginx conf
Created Nov 28, 2017 — forked from fqrouter/worker nginx conf
Youtube Reverse Proxy
View worker nginx conf
resolver 8.8.8.8;
location /video/ {
if ($request_uri ~ "^/video/(.+?)/.+") {
set $upstream_host $1.googlevideo.com;
add_header Content-Disposition "attachment; filename=video.mp4;";
}
rewrite /video/.+?/(.+)$ /$1 break;
proxy_buffering off;
proxy_pass https://$upstream_host;
proxy_set_header Host $upstream_host;
@liruqi
liruqi / repo-rinse.sh
Created Nov 27, 2017 — forked from nicktoumpelis/repo-rinse.sh
Cleans and resets a git repo and its submodules
View repo-rinse.sh
git clean -xfd
git submodule foreach --recursive git clean -xfd
git reset --hard
git submodule foreach --recursive git reset --hard
git submodule update --init --recursive
View random_multi_select.py
import random
random.sample(range(1,201), 20)
@liruqi
liruqi / shadowsocks.cs
Last active Jun 1, 2017
shadowsocks uri
View shadowsocks.cs
public static readonly Regex
UrlFinder = new Regex(@"ss://(?<base64>[A-Za-z0-9+-/=_]+)(?:#(?<tag>\S+))?", RegexOptions.IgnoreCase),
DetailsParser = new Regex(@"^((?<method>.+?):(?<password>.*)@(?<hostname>.+?):(?<port>\d+?))$", RegexOptions.IgnoreCase);