Skip to content

Instantly share code, notes, and snippets.

Avatar
🙂

Hung-I Wang Gowee

🙂
View GitHub Profile
@Gowee
Gowee / chaoxing.py
Last active December 20, 2022 03:16
View chaoxing.py
#!/usr/bin/dev python3
# -*- coding: utf-8 -*-
import requests
from bs4 import BeautifulSoup
import urllib.parse
import json
from PIL import Image
import pytesseract
import time
@Gowee
Gowee / uacme-cloudflare-hook.sh
Last active October 14, 2022 16:27
DNS-01 challenge hook script of uacme for Cloudflare
View uacme-cloudflare-hook.sh
#!/bin/sh
# Copyright (C) 2020 Michel Stam <michel@reverze.net>
# Copyright (C) 2021 Hung-I Wang <whygowe@gmail.com>
#
# The script is adatped from:
# https://github.com/ndilieto/uacme/blob/5edec0eea1bcf6f454ec1787297c2408c2f2e97a/nsupdate.sh
#
# Licensed under the the GNU General Public License <http://www.gnu.org/licenses/>.
# The script is meant to be used as a hook script of uacme to update TXT records for acme challenges.
@Gowee
Gowee / README.md
Created June 24, 2018 16:24
Rotate the avatar of Telegram based on the time in a day using Pyrogram(MTProto).
View README.md
View nixos-init.sh
#!/bin/sh
parted /dev/vda -- mklabel gpt
parted /dev/vda -- mkpart esp 1MiB 100MiB
parted /dev/vda -- mkpart primary 100MiB 100%
parted /dev/vda -- set 1 boot on
mkfs.ext4 -L nixos /dev/vda2 # btrfs not working?
mkfs.vfat -F32 -n boot /dev/vda1
mkdir -p /mnt
mount /dev/vda2 /mnt
mkdir -p /mnt/boot
@Gowee
Gowee / MDExtBot.py
Last active July 31, 2022 07:12
Backup 2017-01.
View MDExtBot.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Backup 2017-01-07.
from uuid import uuid4
from telegram import InlineQueryResultArticle, ParseMode, \
InputTextMessageContent
from telegram.ext import Updater, InlineQueryHandler, CommandHandler
@Gowee
Gowee / gettelegraf.sh
Created April 16, 2022 07:06
Openwrt get telegraf
View gettelegraf.sh
#!/bin/sh
set -eux
cd /tmp
filename=$(opkg update && opkg info telegraf | grep "Filename:" | cut -d' ' -f2)
repo=$(cat /etc/opkg/distfeeds.conf | grep "openwrt_packages" | cut -d' ' -f3)
url="$repo/$filename"
wget -q $url
@Gowee
Gowee / nlc-getbook.js
Created May 27, 2021 15:14
Download PDF from read.nlc.cn
View nlc-getbook.js
async function downloadBook(aid, bid) {
const [title, myreader, kime, fime] = await getBookKey(aid, bid)
const r = await fetch(`http://read.nlc.cn/menhu/OutOpenBook/getReader?aid=${aid}&bid=${bid}&kime=${kime}&fime=${fime}`, { method: "POST", headers: { myreader: myreader }})
const d = await r.arrayBuffer()
saveByteArray(title + ".pdf", d)
}
async function getBookKey(aid, bid) {
const r = await fetch(`http://read.nlc.cn/OutOpenBook/OpenObjectBook?aid=${aid}&bid=${bid}`)
@Gowee
Gowee / wgporo.sh
Last active April 4, 2022 08:52
Rotate Wireguard ports
View wgporo.sh
#!/bin/sh
set -u
WGIF="winnie"
STEP=3600
PSTART=5500
PEND=5999
CONFFILE="/etc/wireguard/$WGIF.conf"
PLEN=$((PEND-PSTART+1))
View dconn.py
#!/usr/bin/env python3
# filter disinct connections by 4-tuples from tcpdump output
pairs = set()
while (line := input()):
time, family, orig, _, dest, remaining = line.split(maxsplit=5)
dest = dest[:-1]
if (orig, dest) not in pairs:
print(f"{orig} > {dest}, {time}, {remaining}")
pairs.add((orig, dest))
View water-meter-function.py
# -*- coding: utf8 -*-
# To be deployed to Tecent SCF
# https://console.cloud.tencent.com/scf/
import json
def main_handler(event, context):
srcip = event['requestContext']['sourceIp']
dest_url = "https://water-meter.bamboo.workers.dev/callback?ip=" + srcip
resp = {
"isBase64Encoded": False,