Skip to content

Instantly share code, notes, and snippets.

View timendum's full-sized avatar

Timendum timendum

  • Italy
View GitHub Profile
@timendum
timendum / config.yaml
Last active April 3, 2025 11:50
dotbins
tools:
# Order is important!
rg: BurntSushi/ripgrep
bat:
repo: sharkdp/bat
shell_code:
bash: |
alias cat='bat -pp'
alias less='bat --paging=always'
powershell: |
@timendum
timendum / obsidian.vbs
Created March 18, 2025 10:30
Extract meeting info from Outlook to Obsidian
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
@timendum
timendum / best.py
Created March 12, 2025 14:08
Python script to find best prices for gas
# /// script
# requires-python = ">=3.12"
# dependencies = [
# "requests",
# ]
# ///
import argparse
import csv
import shutil
@timendum
timendum / SmartMove.vbs
Created March 5, 2025 10:41
Outlook Macro to move mails in the same folders as previous
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
@timendum
timendum / CloneCalendar.vbs
Created March 5, 2025 09:56
Macro to clone a calendar in Outlook
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
@timendum
timendum / average_time.py
Created March 3, 2025 14:31
Calc averange time
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
@timendum
timendum / fail2ban-nginx.md
Last active October 8, 2024 16:12
fail2ban nginx

apt install fail2ban python3-inotify

sudo vi /etc/fail2ban/filter.d/nginx-spammers.conf

sudo vi /etc/fail2ban/jail.local

@timendum
timendum / playlist.py
Created September 10, 2024 15:12
Youtube Playlist to Podcast
# /// script
# requires-python = ">=3.10"
# dependencies = [
# "yt-dlp>0.4.0",
# "feedendum",
# ]
# ///
import argparse
import mimetypes
from datetime import datetime
@timendum
timendum / cachemire.csv
Last active September 13, 2024 15:19
Tintoria e Cachemire
We can make this file beautiful and searchable if this error is corrected: It looks like row 9 should actually have 7 columns, instead of 2 in line 8.
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
@timendum
timendum / contanomi.py
Created October 25, 2023 12:29
contanomi to csv
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]: