Skip to content

Instantly share code, notes, and snippets.

View abersheeran's full-sized avatar
👋
玉楼金阙慵归去,且插梅花醉洛阳

Aber abersheeran

👋
玉楼金阙慵归去,且插梅花醉洛阳
View GitHub Profile
@abersheeran
abersheeran / proxy.worker.js
Last active April 13, 2024 08:45
A proxy download cloudflare worker
addEventListener("fetch", (event) => {
event.respondWith(
handleRequest(event.request).catch(
(err) => new Response(err.stack, { status: 500 })
)
);
});
async function handleRequest(request) {
const url = getUrl(request)
@abersheeran
abersheeran / runmodule.py
Last active April 12, 2024 08:59
Run Cython module
#!/usr/bin/python3.10
# -*- coding: utf-8 -*-
import asyncio
import sys
import importlib
from functools import reduce
from typing import Any
def import_from_string(import_str: str) -> Any:
from __future__ import annotations
import html
import inspect
import os
import traceback
import typing
from baize.typing import WSGIApp, Environ, StartResponse, ExcInfo
from baize.wsgi import Request, Response, HTMLResponse, PlainTextResponse
@abersheeran
abersheeran / get-cn-ipv4.sh
Last active March 22, 2024 06:38
Chinese IPv4
wget -c http://ftp.apnic.net/stats/apnic/delegated-apnic-latest
cat delegated-apnic-latest | awk -F '|' '/CN/&&/ipv4/ {print $4 "/" 32-log($5)/log(2)}' | cat > ip.txt
@abersheeran
abersheeran / interpreters.py
Created March 12, 2024 02:59
Use interpreters module in python3.12
import _xxsubinterpreters
from typing import List
from inspect import cleandoc
SharedValue = int | float | bool | bytes | str | None | tuple["SharedValue", ...]
class Interpreter:
def __init__(self, id: int):
@abersheeran
abersheeran / merge_ip_range.py
Created February 29, 2024 08:40
Merge ip range to ip network list
import ipaddress
def ip_range(
start_ip: ipaddress.IPv4Address, end_ip: ipaddress.IPv4Address
) -> list[ipaddress.IPv4Network]:
if start_ip > end_ip:
raise ValueError("Start IP must be less than end IP")
res = []
@abersheeran
abersheeran / pypi-mirror.worker.js
Last active January 4, 2024 03:16
A pypi mirror cloudflare worker
addEventListener("fetch", (event) => {
event.respondWith(
handleRequest(event.request).catch(
(err) => new Response(err.stack, { status: 500 })
)
);
});
async function handleRequest(request) {
const { host, pathname } = new URL(request.url)
@abersheeran
abersheeran / y.py
Created April 6, 2021 03:11
Y combinator. Python lambda.
Y = lambda g: (lambda f: g(lambda arg: f(f)(arg))) (lambda f: g(lambda arg: f(f)(arg)))
if __name__ == "__main__":
fib = Y(lambda f: lambda n: (1 if n < 3 else f(n-1) + f(n-2)))
print(fib(10))
@abersheeran
abersheeran / llama2-2-7b-chat-int8-worker.js
Last active December 5, 2023 06:02
llama2-2-7b-chat-int8 in Cloudflare workers
import { Ai } from './vendor/@cloudflare/ai.js';
export default {
async fetch(request, env) {
const ai = new Ai(env.AI);
// prompt - simple completion style input
// let simple = {
// prompt: 'Tell me a joke about Cloudflare'
// };
@abersheeran
abersheeran / wsgi-type-definitions.py
Last active November 20, 2023 04:48
use typing to describe WSGI
"""
https://peps.python.org/pep-3333/
"""
from types import TracebackType
from typing import (
Any,
Callable,
Iterable,
List,
Optional,