Skip to content

Instantly share code, notes, and snippets.

View moesoha's full-sized avatar
🧐
Busy working

Soha Jin moesoha

🧐
Busy working
View GitHub Profile

Keybase proof

I hereby claim:

  • I am moesoha on github.
  • I am soha (https://keybase.io/soha) on keybase.
  • I have a public key whose fingerprint is C0C8 8AEB 0CF8 BA40 2DA5 B831 27DB 133C D5EB D3BE

To claim this, I am signing this object:

@moesoha
moesoha / baseline-css
Created December 19, 2017 01:17 — forked from rachelbaker/baseline-css
Baseline CSS: Graph paper like background for easier alignment of elements
html {
font-size: 93.8%;
background-color: #f1f2f3;
background-image:
-webkit-linear-gradient(0deg, transparent .05em, rgba(0,0,0,.05) .05em, rgba(0,0,0,.05) .125000em, transparent .125000em),
-webkit-linear-gradient(rgba(0,0,0,.05) .062500em, transparent .062500em);
background-image:
-moz-linear-gradient(0deg, transparent .05em, rgba(0,0,0,.05) .05em, rgba(0,0,0,.05) .125000em, transparent .125000em),
-moz-linear-gradient(rgba(0,0,0,.05) .062500em, transparent .062500em);
background-image:
@moesoha
moesoha / vConsoleLoader.js
Last active April 4, 2018 07:41
Load vConsole when `console` appears in `document.location.search` with one-line snippet
window.document.location.search.substr(1).split('&').forEach(function (v){
if(v.split('=')[0] == 'console'){
if(!window.VConsole){
var s = document.createElement('script');
s.src = 'https://res.wx.qq.com/mmbizwap/zh_CN/htmledition/js/vconsole/3.0.0/vconsole.min.js';
window.document.body.appendChild(s);
}
var c=setInterval(function (){
if(window.VConsole){
clearInterval(c);
@moesoha
moesoha / login_lte.sh
Last active May 1, 2021 19:24
Keep MF910's cellular data connected
#!/bin/sh
LOCKFILE="/tmp/login_lte.pid"
TMP=$(mktemp -u)
WEBADDR="192.168.0.1"
PASSWORD="cGFzc3dvcmQ=" # in base64
# GENERAL FUNCTIONS
operation_prepare() {
touch ${TMP}
curl 'http://'${WEBADDR}'/goform/goform_set_cmd_process' -q -c ${TMP} -b ${TMP} -H 'Referer: http://'${WEBADDR}'/index.html' --data 'isTest=false&goformId=LOGIN&password='${PASSWORD}
@moesoha
moesoha / deploy-mtproto.sh
Last active January 24, 2023 06:22
Simple deploy script for deploying MTProto proxy on Debian
#!/bin/sh
if [ $# -ne 1 ]
then
echo take port number as argument
exit 1
fi
apt update && apt install -y git curl build-essential libssl-dev zlib1g-dev
@moesoha
moesoha / _1020_lxl.py
Last active July 20, 2019 02:39
CTB lxl plugin
import logging
import cqhttp
import telegram
import random
import traceback
import global_vars
from bot_constant import *
from main.command import command_listener
@moesoha
moesoha / get-cloudflare-nginx-conf.sh
Created June 15, 2020 10:52
This script creates Nginx config snippets that can deny non-CloudFlare IP or set real Client IP from trusted header.
#!/bin/sh
echo "===== Fetching CloudFlare latest IPs ====="
IP4LIST=$(curl https://www.cloudflare.com/ips-v4)
IP6LIST=$(curl https://www.cloudflare.com/ips-v6)
echo "===== Creating Real IP config ====="
printf "$IP4LIST\n\n$IP6LIST\n\n" | sed -E 's/(.+)/set_real_ip_from \1;/' - | tee cloudflare_real_ip.conf
echo "real_ip_header CF-Connecting-IP;" | tee --append cloudflare_real_ip.conf
--- a/src/gcc/c-family/c-attribs.c
+++ b/src/gcc/c-family/c-attribs.c
@@ -4894,6 +4894,11 @@
handle_optimize_attribute (tree *node, tree name, tree args,
int ARG_UNUSED (flags), bool *no_add_attrs)
{
+ if (getenv("ONLINE_JUDGE"))
+ {
+ error_at (DECL_SOURCE_LOCATION (*node), "%qE attribute is disallowed in online judge mode", name);
+ return NULL_TREE;
@moesoha
moesoha / worker.js
Last active May 5, 2022 15:12
Auto kick added member from Telegram group (deployed on CloudFlare Worker)
addEventListener('fetch', event => event.respondWith(handleRequest(event.request)));
// Add environment variable `TGBOT_TOKEN` via Worker-Settings
async function requestTelegramBotAPI(method, payload) {
return fetch(`https://api.telegram.org/bot${TGBOT_TOKEN}/${method}`, {
method: "POST",
headers: {
"Content-Type": "application/json; charset=utf-8"
},
body: !payload ? undefined : JSON.stringify(payload)
@moesoha
moesoha / searchParams-oneliner.js
Last active December 24, 2020 15:57
Get SearchParams
// compatibility: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/fromEntries
const getQueryParams = s => Object.fromEntries(s.split('&').map(s => s.split('=')).map(a => [a.shift(), a.join('=')].map(s => decodeURIComponent(s || ''))).filter(([k, _]) => k.length > 0));
// window.$_GET = getQueryParams(window.location.search.slice(1));