apt install fail2ban python3-inotify
sudo vi /etc/fail2ban/filter.d/nginx-spammers.conf
sudo vi /etc/fail2ban/jail.local
tools: | |
# Order is important! | |
rg: BurntSushi/ripgrep | |
bat: | |
repo: sharkdp/bat | |
shell_code: | |
bash: | | |
alias cat='bat -pp' | |
alias less='bat --paging=always' | |
powershell: | |
Sub ExtractMeetingInfoToObsidian() | |
Dim objApp As Outlook.Application | |
Dim objSelection As Outlook.Selection | |
Dim objItem As Object | |
Dim objMeeting As Outlook.AppointmentItem | |
Dim strMarkdown As String | |
Dim strAttendees As String | |
Dim arrAttendees() As String | |
Dim i As Integer | |
Dim strFileName As String |
# /// script | |
# requires-python = ">=3.12" | |
# dependencies = [ | |
# "requests", | |
# ] | |
# /// | |
import argparse | |
import csv | |
import shutil |
Sub SmartArchive() | |
Dim objApp As Outlook.Application | |
Dim objSelection As Outlook.Selection | |
Dim objMail As Outlook.MailItem | |
Dim objConversation As Outlook.Conversation | |
Dim objRootItems As Outlook.SimpleItems | |
Dim objChildItems As Outlook.SimpleItems | |
Dim objRootItem As Object | |
Dim objChildItem As Object | |
Dim objFolder As Outlook.folder |
Sub CloneCalendarItem() | |
Dim objApp As Outlook.Application | |
Dim objSelection As Outlook.Selection | |
Dim objItem As Object | |
Dim objNewItem As Outlook.AppointmentItem | |
Set objApp = Outlook.Application | |
Set objSelection = objApp.ActiveExplorer.Selection | |
If objSelection.Count > 0 Then |
import math | |
PRECISION = 24 * 60 | |
def average_time(times: list[str]) -> str: | |
sum_sin = 0.0 | |
sum_cos = 0.0 | |
for time_str in times: | |
hours, mins = map(int, time_str.split(':')) | |
total_mins = (hours % 24) * 60 + mins |
apt install fail2ban python3-inotify
sudo vi /etc/fail2ban/filter.d/nginx-spammers.conf
sudo vi /etc/fail2ban/jail.local
# /// script | |
# requires-python = ">=3.10" | |
# dependencies = [ | |
# "yt-dlp>0.4.0", | |
# "feedendum", | |
# ] | |
# /// | |
import argparse | |
import mimetypes | |
from datetime import datetime |
ID,Title,PublishedAt,Duration,ViewCount,LikeCount,CommentCount | |
eYeHRvyiTgE,"Cachemire Podcast - Episodio 3: La posta di Sonia, Sanremo e Walker Texas Ranger",2020-12-18T11:45:03Z,PT1H11M14S,217055,6288,364 | |
uudLdmsNbhQ,"Cachemire Podcast - Episodio 2: Pizza, Sushi e Tripadvisor",2020-12-11T12:30:41Z,PT1H8M30S,255574,7475,399 | |
ZFGTo-zFIW4,"Cachemire Podcast S3 - Episodio 1: Remake, Reboot, Ripartiti!",2022-11-18T13:30:06Z,PT1H39S,151422,5627,361 | |
GdHybYErqkY,Cachemire Podcast S2 - Episodio 15: Cartoni Animati,2022-02-25T13:30:06Z,PT59M42S,121812,3689,303 | |
hz_gdMGGqVY,Cachemire Podcast S2 - Episodio 8: Primeggiare feat. Matteo Berrettini,2021-12-03T13:30:07Z,PT1H25M41S,212954,6605,242 | |
prouISP730Y,Cachemire Podcast - Episodio 20: Ricordati di Santificare le Feste feat. Valerio Lundini,2021-04-23T12:15:01Z,PT1H22M57S,550174,13931,702 | |
Lfo6sK4MVUY,Cachemire Podcast S3 - Episodio 13: Luoghi Comuni con Valerio Lundini,2023-03-10T13:33:43Z,PT1H4M57S,279350,8101,332 | |
K1QB3_RmEwk,Cachemire Podcast S3 - Episodio 10: Amici Am |
import requests | |
import json | |
dcsv = {"0": {}, "1": {}} | |
for y in range(1999, 2022): | |
r = requests.get(f"https://www.istat.it/ws/nati/index2021.php?type=list&limit=20&year={y}") | |
rdata = json.loads(r.text[9:-2]) | |
for k in ("0", "1"): | |
for row in rdata[k]: |