Skip to content

Instantly share code, notes, and snippets.

View Turkiye-Il-Ilce.json
[
{
"il": "Adana",
"plaka": 1,
"ilceleri": [
"Aladağ",
"Ceyhan",
"Çukurova",
"Feke",
"İmamoğlu",
@sh4dowb
sh4dowb / gist:918d93323ad6cef57d6c2a0b11ef65f4
Created May 7, 2019 16:17
minimal linux laptop iptables settings
View gist:918d93323ad6cef57d6c2a0b11ef65f4
# Generated by iptables-save v1.6.1 on Tue May 7 19:15:45 2019
*filter
:INPUT DROP [349:29624]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [573:36440]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 445 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
@sh4dowb
sh4dowb / captcha_readme.txt
Last active November 15, 2019 16:55
PHP simple high performance captcha (uses memcache)
View captcha_readme.txt
Include AHGBold.tff
Run memcached at default port (11211)
Example captcha: https://i.ibb.co/sPQjW0K/index.png
@sh4dowb
sh4dowb / format_btc.php
Created November 15, 2019 19:40
PHP fade/mute zeroes in decimals
View format_btc.php
<?php
function formatBtc($val){
$val = number_format($val, 8); // round to 8 decimal points
$rtval = rtrim($val, "0"); // get rid of zeroes at the end
$x = strlen($val) - strlen($rtval); // get how many zeroes were deleted
if($x > 0){
$rtval .= '<span style="color:#ffffff6f;">'; // start a "faded" <span>
// or try class="text-muted" for bootstrap
for($i = 0;$i < $x;$i++) // add deleted zeroes back
$rtval .= "0";
@sh4dowb
sh4dowb / ilce-listesi.json
Last active February 24, 2020 18:31
UETDS Eşya Taşımacılığı Ülke ve İlçe Listesi JSON
View ilce-listesi.json
[
{"kod":99133,"il_kodu":"1","ad":"Şakirpaşa Havalimanı","il_adi":"ADANA"},
{"kod":2033,"il_kodu":"1","ad":"ÇUKUROVA","il_adi":"ADANA"},
{"kod":2032,"il_kodu":"1","ad":"SARIÇAM","il_adi":"ADANA"},
{"kod":1806,"il_kodu":"1","ad":"İMAMOĞLU","il_adi":"ADANA"},
{"kod":1757,"il_kodu":"1","ad":"ALADAĞ","il_adi":"ADANA"},
{"kod":1748,"il_kodu":"1","ad":"YÜREĞİR","il_adi":"ADANA"},
{"kod":1734,"il_kodu":"1","ad":"YUMURTALIK","il_adi":"ADANA"},
{"kod":1687,"il_kodu":"1","ad":"TUFANBEYLİ","il_adi":"ADANA"},
{"kod":1588,"il_kodu":"1","ad":"SAİMBEYLİ","il_adi":"ADANA"},
@sh4dowb
sh4dowb / spotify-media-key-fix.sh
Created April 13, 2020 12:35
linux spotify media keys are sometimes not working after another media is played, and spotify is restarted. this command fixes it
View spotify-media-key-fix.sh
dbus-monitor | grep --line-buffered interface=org.mpris.MediaPlayer2.Player | grep --line-buffered -v spotify | awk -W interactive -F'member=' '{print $2}' | xargs -L1 -I {} dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.{}
# when you play another media, and restart spotify, media keys get sent to another destination.
# in my case, it was VLC. output from dbus-monitor:
#
# method call time=1586780292.910122 sender=:1.58 -> destination=org.mpris.MediaPlayer2.vlc serial=1878 path=/org/mpris/MediaPlayer2; interface=org.mpris.MediaPlayer2.Player; member=PlayPause
# so I piped together a few commands, which got the wrong dbus output, and forwarded it to spotify.
# run:
# bash spotify-media-key-fix.sh &
@sh4dowb
sh4dowb / multipleevent.py
Last active June 18, 2020 07:21
telethon capture multiple events - capture button and/or text event
View multipleevent.py
def press_or_text(user_id):
return events.Raw(func=lambda e: (type(e) == UpdateNewMessage and e.message.from_id == user_id) or (type(e) == UpdateBotCallbackQuery and e.user_id == user_id and e.data != b'cancel'))
whatever = await conv.wait_event(press_or_text(sender))
if type(whatever) == UpdateBotCallbackQuery and whatever.data in [b'create', b'list']:
# button clicked
# not actual event like "CallbackQuery", you can't use .edit() etc. directly
print(whatever.data)
else:
# message sent
@sh4dowb
sh4dowb / netherlands-iban-acc-number-validate.py
Last active December 25, 2020 18:44
Netherlands IBAN account number checksum validator
View netherlands-iban-acc-number-validate.py
# Netherlands account number algorithm uses this factor table:
# digit | factor
# 1st | 10
# 2nd | 9
# ...
# 10th | 1
#
# After multiplying digits according to the table, sum of these results must be divisible with 11
@sh4dowb
sh4dowb / decrypt_ruby_MessageEncryptor.py
Created April 8, 2021 07:34
Decrypt Ruby's ActiveSupport::MessageEncryptor on Python 3
View decrypt_ruby_MessageEncryptor.py
import hashlib
import base64
from Crypto import Random
from Crypto.Cipher import AES
import rubymarshal.reader
from pbkdf2 import PBKDF2
SECRET = "a3f58debfe0c5b71edaebea3a627f4f"
SALT = "12345"
ITERATIONS = 65536
@sh4dowb
sh4dowb / decrypt_ruby_MessageEncryptor.py
Last active April 17, 2021 18:14
Decrypt Ruby's ActiveSupport::MessageEncryptor on Python 3
View decrypt_ruby_MessageEncryptor.py
import hashlib
import base64
from Crypto import Random
from Crypto.Cipher import AES
import rubymarshal.reader
from pbkdf2 import PBKDF2
SECRET = "asdasd"
ITERATIONS = 65536
KEYLENGTH = 32