Skip to content

Instantly share code, notes, and snippets.

@thevickypedia
thevickypedia / retry.py
Created June 19, 2022 13:26
Retry a function for given number of times and handle known exceptions
import functools
import logging
import random
from typing import Callable, Any
logging.root.setLevel(level=logging.DEBUG)
def retry(attempts: int = 3, exclude_exc=None) -> Callable:
"""Calls child func recursively.
@thevickypedia
thevickypedia / video.py
Last active June 24, 2022 18:56
Stream videos using FastAPI
"""
pip install fastapi uvicorn aiofiles jinja2
uvicorn video:app --reload
"""
import mimetypes
import logging
import os
import pathlib
from fastapi import FastAPI, Request, Response, Header
@thevickypedia
thevickypedia / camera.py
Last active December 29, 2022 04:03
Get information and list cameras for Linux, macOS and Windows
import platform
import subprocess
from typing import Dict, Iterable, List, Union
Windows = """wmic path CIM_LogicalDevice where "Description like 'USB Video%'" get /value"""
Darwin = "system_profiler SPCameraDataType"
Linux = "v4l2-ctl --list-devices"
def list_splitter(original_list: List[str], delimiter: str) -> List[List[str]]:
@thevickypedia
thevickypedia / timezones.ipynb
Last active January 16, 2023 14:27
Timezones using python
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@thevickypedia
thevickypedia / github.py
Created January 24, 2023 04:24
Check availability of an username and get details of the particular account
"""Check availability of an username and get details of the particular account.
Requirements:
python -m pip install python-dotenv requests
"""
import json
import os
import string
from typing import Union
@thevickypedia
thevickypedia / scan_att_router.py
Last active January 26, 2023 20:38
Scan devices attached to router - At&t
# pip install requests pandas lxml
import logging
import socket
from typing import Iterable, Optional, Union, Any
import pandas
import requests
from pandas import DataFrame
SOURCE = "http://{NETWORK_ID}.254/cgi-bin/devices.ha"
@thevickypedia
thevickypedia / domain_availability.py
Last active January 27, 2023 14:50
Check domain name availability across all top-level domains in AWS using whois service
import logging
import subprocess
from typing import Iterable, NoReturn
import requests
from bs4 import BeautifulSoup
class CustomFormatter(logging.Formatter):
"""Override logging.Formatter using custom colors."""
@thevickypedia
thevickypedia / timezones.py
Last active March 14, 2023 02:18
Get all timezone names, descriptions and GMT offsets
import os
from collections.abc import Generator
from threading import Thread
from typing import List, Union, NoReturn, Dict
import pandas
import requests
import yaml
from jarvis.modules.exceptions import EgressErrors
@thevickypedia
thevickypedia / cleanup_release_and_tags.py
Last active April 9, 2023 15:59
Clean up releases and tags in GitHub
import logging
import os
from threading import Thread
from typing import List, Tuple, Union
import requests
LOGGER = logging.getLogger(__name__)
LOGGER.addHandler(logging.StreamHandler())
LOGGER.setLevel(logging.DEBUG)
@thevickypedia
thevickypedia / stop_process.sh
Last active April 16, 2023 18:30
Stop a process with process name in argument
if [[ $1 == "" ]]
then
echo "Pass process name as argument"
exit
else
echo "Stopping PIDs for $1"
fi
for pid in $(ps -ef | grep $1 | awk '{print $2}'); do echo "Stopping pid $pid" && kill -9 $pid; done
# for pid in $(ps -ef | awk '/$1/ {print $2}'); do echo "Stopping pid $pid" && kill -9 $pid; done