Skip to content

Instantly share code, notes, and snippets.

View pietrocaselani's full-sized avatar

Pietro Caselani pietrocaselani

  • Florianópolis, Brasil
  • 22:23 (UTC -03:00)
  • X @pietropc_
View GitHub Profile
// CS2
// Launch options: +exec autoexec.cfg
unbind alt
unbind n
sensitivity 1.25
// bind "`" "toggleconsole"
bind "=" "toggleconsole"
@pietrocaselani
pietrocaselani / [EpisodeSubs]list.jmte
Created May 19, 2026 04:02
TinyMediaManager templates to export media with subtitles
{
"episodes": [
${foreach tvShows show ,}
${foreach show.episodes episode , }
{
"showTitle": "${show.title}",
"episodeTitle": "${episode.title}",
"season": ${episode.season},
"episode": ${episode.episode},
@pietrocaselani
pietrocaselani / Exit Big Picture.bat
Created March 2, 2026 08:31
Switch between displays, scales and Steam Big Picture (depends on https://github.com/imniko/SetDPI)
@echo off
start steam://close/bigpicture
:: Set display scale to 150% on TV
SetDPI.exe 150 1
:: Switch to internal display only
DisplaySwitch.exe /internal
@pietrocaselani
pietrocaselani / score_functions.py
Last active January 11, 2026 00:10
Subliminal score functions
from typing import Any
from numpy import clip
from subliminal import Episode, Movie, Subtitle, Video, get_scores
def dexter_2006_compute_score(subtitle: Subtitle, video: Video, **kwargs: Any) -> int:
if not subtitle_year_score(subtitle, 2006):
return 1
return hdtv_compute_score(subtitle, video, **kwargs)
@pietrocaselani
pietrocaselani / main-strava-pedals-of-year.py
Created December 18, 2024 23:25
Get pedal activities from Strava
import requests
import os
from datetime import datetime, timezone
from dotenv import load_dotenv
from strava_oauth import get_tokens
# Carrega as variáveis do arquivo .env
load_dotenv()
# Lê os dados de configuração do app Strava do arquivo .env
import RxSwift
import RxTest
import XCTest
@testable import ExampleFramework
final class MoviesDefaultViewModelTests: XCTestCase {
private var scheduler: TestScheduler!
private var observer: TestableObserver<MovieViewState>!
private var disposeBag: DisposeBag!
@pietrocaselani
pietrocaselani / MovieDefaultViewModel.swift
Created June 3, 2018 18:44
Testes unitários no iOS sem medo de ser feliz
import RxSwift
public final class MoviesDefaultViewModel: MoviesViewModel {
private let viewStateSubject = BehaviorSubject<MovieViewState>(value: .loading)
private let disposeBag = DisposeBag()
private let repository: MoviesRepository
public init(repository: MoviesRepository) {
self.repository = repository
}
@pietrocaselani
pietrocaselani / MovieContract.swift
Created June 3, 2018 18:43
Testes unitários no iOS sem medo de ser feliz
import RxSwift
public enum MovieViewState: Hashable {
case loading
case error(error: Error)
case showingMovies(titles: [String])
case empty
public var hashValue: Int {
switch self {
@pietrocaselani
pietrocaselani / ThreadWithRunLoopScheduler.swift
Created February 18, 2018 16:54
RxSwift scheduler with run loop
final class ThreadWithRunLoopScheduler: ImmediateSchedulerType {
private let thread: ThreadWithRunLoop
init(name: String) {
thread = ThreadWithRunLoop()
thread.name = name
thread.start()
}
func schedule<StateType>(_ state: StateType, action: @escaping (StateType) -> Disposable) -> Disposable {
@pietrocaselani
pietrocaselani / ThreadWithRunLoop.swift
Created February 18, 2018 16:51
Thread + RunLoop to work with Realm and RxSwift
final class ThreadWithRunLoop: Thread {
var runLoop: RunLoop!
override func main() {
runLoop = RunLoop.current
runLoop.add(Port(), forMode: .commonModes)
runLoop.run()
}
}