Skip to content

Instantly share code, notes, and snippets.

View ahmedrowaihi's full-sized avatar
🦖
doing thing..

Ahmed Rowaihi ahmedrowaihi

🦖
doing thing..
View GitHub Profile
{
"openapi": "3.0.2",
"info": {
"title": "teachable-public-api",
"description": "The documentation for the Teachable Public API. All endpoints are currently\nsubject to change.",
"version": "0.0.1"
},
"paths": {
"/v1/courses": {
"get": {
@ahmedrowaihi
ahmedrowaihi / playwright-vnc
Created May 23, 2025 22:53
Dockerfile for running Firefox in a VNC session with Playwright
# Use specific version for better reproducibility
FROM mcr.microsoft.com/playwright:v1.42.1
# Set build arguments for non-sensitive configurable values
ARG RESOLUTION=1920x1080
ARG VNC_PORT=5901
# Set environment variables
ENV DEBIAN_FRONTEND=noninteractive \
DISPLAY=:1 \
// incomplete - better-auth letta identity based adapter
import type { LettaClient } from "@letta-ai/letta-client";
import { Identity, IdentityProperty } from "@letta-ai/letta-client/api";
import { generateId } from "better-auth";
import type {
Account,
Adapter,
BetterAuthOptions,
Session,
User,
@ahmedrowaihi
ahmedrowaihi / mysql-makefile
Created April 28, 2024 11:15
a small script to export-import fresh mysql data ( could be used for moving dbs )
# Define variables
EC2_INSTANCE_IP = <EC2_instance_IP>
RDS_INSTANCE_IP = <RDS_instance_IP>
USERNAME = <username>
PASSWORD = <password>
DATABASE_NAME = <database_name>
DUMP_FILE = dump.sql
# Define the export and import commands
export:
# ################################################################################
# # Install AWS CLI
RUN apk add --no-cache python3 py3-pip
RUN pip3 install --break-system-packages --upgrade pip
RUN pip3 install --break-system-packages awscli
ARG AWS_REGION
ARG AWS_ACCESS_KEY_ID
ARG AWS_SECRET_ACCESS_KEY
ARG AWS_BUCKET
@echo off
setlocal enabledelayedexpansion
rem Define arrays for paths and targets
set "Dirs[0]=PATH_TO_IMAGE_DIRECTORY"
set "Dirs[1]=PATH_TO_LOGOS_DIRECTORY"
set "Dirs[2]=PATH_TO_SVG_DIRECTORY"
set "Dirs[3]=PATH_TO_IMG_DIRECTORY"
set "Targets[0]=TAEGET_IMAGE_DIRECTORY"
@ahmedrowaihi
ahmedrowaihi / Fill AOU Survey
Created August 17, 2023 09:56
This small code snippet is to fill out the survey form | تخطي الاستبيان
// Github: ahmedrowaihi
// HOW TO USE:
// OPEN THE browser console
// Press [CTRL + SHIFT + I]
// THEN COPY PASTE THE CODE BELLOW TO THE CONSOLE AND HIT [ENTER]
const elements = Array.from(document.all).filter(element => element.id.endsWith('rbAnswer'));
elements.forEach(element => {
const radioButtons = element.querySelectorAll('input[type="radio"]');
export function indecator() {
const spinner = ['-', '\\', '|', '/']
let i = 0
let interval
return {
stop(string) {
if (interval) clearInterval(interval)
if (string) process.stdout.write(`${string}\n`)
@ahmedrowaihi
ahmedrowaihi / Binlog_filter.js
Created May 16, 2023 23:27
MySQL binlog filter
const fs = require("fs");
const binlogFile = "allbinglog.sql"; // bin log file name
const db = ""; // db name
const table = ""; // table
const outputFile = "output.sql";
const pattern = new RegExp(
function mysqlInsertToEloquent(model, raw, excludeKey = [], excludeValue = []) {
const tableName = raw.match(/(?<=INSERT INTO `)(.*?)(?=`)/)[0];
const columns = raw.match(/(?<=\()(.+?)(?=\))/)[0].split(",").map(c => c.trim().replace(/`/g, ''));
const values = raw.match(/(?<=VALUES \()(.*?)(?=\);?$)/)[0].split("),(");
let record = '';
values.forEach(val => {
const modelData = {};
const vals = val.split(",");