- Create a bot using @BotFather, get it's token
- Start conversation with bot
- Run following curl command
curl https://api.telegram.org/bot/getUpdates | grep -Po '"from":{"id":.+?,'
curl https://api.telegram.org/bot/getUpdates | grep -Po '"from":{"id":.+?,'
<!doctype html> | |
<html> | |
<head> | |
{% block head %} | |
<meta charset="UTF-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<link href="{{ url_for('static', path='css/style.css') }}" rel="stylesheet"> | |
<title>{% block title %} | |
{{ '%s | Your Name' % title or 'Your Name' }} | |
{% endblock %} |
#!/usr/bin/env -S bash -c "docker run -p 8080:8080 -it --rm \$(docker build --progress plain -f \$0 . 2>&1 | tee /dev/stderr | grep -oP 'sha256:[0-9a-f]*')" | |
# syntax = docker/dockerfile:1.4.0 | |
FROM node:20 | |
WORKDIR /root | |
RUN npm install sqlite3 |
A recreation of the [Typst](https://typst.app) inspired by https://github.com/SAWARATSUKI/ServiceLogos. Created in Inkscape. | |
# License | |
1. Competely free for personal use. | |
2. Credit this gist or me (fenjalien) when sharing or distributing the image. | |
3. No commercial use, unless explicit permission has been granted. |
function shrink_path { | |
# Replace the home directory with ~ for brevity | |
local path="${PWD/#$HOME/~}" | |
local new_path="" | |
local -a path_components=("${(@s:/:)path}") | |
local num_components=${#path_components[@]} | |
# Loop through each component except the last one | |
for (( i=1; i < num_components; i++ )); do | |
if [[ -n ${path_components[i]} ]]; then | |
new_path+="%{$fg[yellow]%}${path_components[i][1]}%{$reset_color%}%{$fg[white]%}:%{$reset_color%}" |
// cc -w -include time.h -o qlock qlock.c // MIT Copyright (c) Tsoding | |
char*s="// cc -w -include time.h -o qlock qlock.c // MIT Copyright (c) Tsoding\n" | |
"char*s=\"?\";x,y,d[8],i,dx;f[]={31599,19812,14479,31207,23524,29411,29679,\n" | |
"30866,31727,31719,1040};char*so,*si;p(ch){i=x/2/(3+2);dx=x/2%(3+2);if(i<8&&(y-5)\n" | |
"/2<5&&dx<3&&(f[d[i]]>>((5-(y-5)/2-1)*3+dx))&1)printf(\"\\033[1;41;30m%c\\033[0m\",ch\n" | |
");else printf(\"%c\",ch);if(ch=='\\n'){y+=1;x=0;}else x+=1;}gd(){time_t t=time(NULL);struct\n" | |
" tm*tm=localtime(&t);d[0]=tm->tm_hour/10;d[1]=tm->tm_hour%10;d[2]=10;d[3]=tm->tm_min\n" | |
"/10;d[4]=tm->tm_min%10;d[5]=10;d[6]=tm->tm_sec/10;d[7]=tm->tm_sec%10;}main(){for\n" | |
"(gd();;printf(\"\\n\\033[%dA\\033[%dD\",y+1,x),sleep(1),gd())for(so=s,x=0,y=0;*so;so++\n" | |
")if(*so==63)for(si=s;*si;si++)switch(*si){case'\\n':p('\\\\');p('n');p('\"');p('\\n')\n" |