Skip to content

Instantly share code, notes, and snippets.

View uratmangun's full-sized avatar
⛰️
بِسْمِ الله

uratmangun uratmangun

⛰️
بِسْمِ الله
View GitHub Profile
@uratmangun
uratmangun / Dockerfile
Created October 9, 2024 03:02
sharp nextjs docker
FROM oven/bun:alpine AS base
# Stage 1: Install dependencies
FROM base AS deps
WORKDIR /app
COPY package.json bun.lockb ./
RUN bun install --frozen-lockfile
# Stage 2: Build the application
FROM base AS builder
@uratmangun
uratmangun / azure.ts
Created October 18, 2024 02:39
azure openai
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
/**
* Demonstrates how to get chat completions for a chat context.
*
* @summary get chat completions.
*/
import { AzureOpenAI } from "openai";
#!/usr/bin/env python3
def get_battery_info():
try:
# Battery percentage
with open('/sys/class/power_supply/battery/capacity', 'r') as f:
percentage = f.read().strip()
# Charging status
with open('/sys/class/power_supply/battery/status', 'r') as f:
import * as pw from 'playwright';
const AUTH = '';
const SBR_CDP = `wss://${AUTH}@brd.superproxy.io:9222`;
async function main() {
console.log('Connecting to Scraping Browser...');
const browser = await pw.chromium.connectOverCDP(SBR_CDP);
try {
console.log('Connected! Navigating...');
const page = await browser.newPage();
await page.goto('https://example.com', { timeout: 2 * 60 * 1000 });
async function getCategories(page) {
console.log('Navigating to https://alfagift.id/');
await page.goto('https://alfagift.id/');
console.log('Waiting for response...');
// Wait for the specific categories menu container
// await page.waitForSelector('//*[@id="__layout"]/div/div[1]/header[1]/div[2]/div/div/div[1]/div[1]/div/div/div/div[2]/div/div/div');
// Get and log the content of the categories container
const containerContent = await page.evaluate(() => {
const container = document.evaluate(
async function getAllItems(page) {
const products = await page.$$eval('div.list-product-items', (productElements) => {
return productElements.map(productElement => {
const titleElement = productElement.querySelector('p.product_name');
const priceElement = productElement.querySelector('p.price span');
const imageElement = productElement.querySelector('img');
const availabilityElement = productElement.querySelector('.availability-label');
const title = titleElement?.textContent?.trim() || null;
import { chromium } from 'playwright';
import { fileURLToPath } from 'url';
import dotenv from 'dotenv';
dotenv.config({ path: '.env.local' });
/**
* Scrapes content from a given URL using Playwright with CDP connection
* @param {string} url - The URL to scrape
* @returns {Promise<string>} - The scraped content
*/
import { chromium } from 'playwright';
import dotenv from 'dotenv';
// Load environment variables
dotenv.config({ path: '.env.local' });
async function getGoogleHtml(query = '', baseUrl = 'https://www.google.com/search?q=') {
const browser = await chromium.connectOverCDP(process.env.BRIGHT_PLAYWRIGHT_URL);
const searchUrl = baseUrl + encodeURIComponent(query);
import OpenAI from "openai"
import dotenv from 'dotenv';
import { zodResponseFormat } from "openai/helpers/zod";
import { z } from "zod";
dotenv.config({ path: '.env.local' });
const openai = new OpenAI({
baseURL: "https://generativelanguage.googleapis.com/v1beta/openai/",
apiKey: process.env.GEMINI_API_KEY
})
const SearchResult = z.array(
import { chromium } from 'playwright';
import { fileURLToPath } from 'url';
import dotenv from 'dotenv';
import { searchParser } from './convert-search.mjs';
dotenv.config({ path: '.env.local' });
/**
* Scrapes content from a given URL using Playwright with CDP connection
* @param {string} url - The URL to scrape