Skip to content

Instantly share code, notes, and snippets.

View jaydeepkarale's full-sized avatar

Jaydeep Karale jaydeepkarale

View GitHub Profile
@jaydeepkarale
jaydeepkarale / aiohttpinit.py
Last active June 23, 2022 12:54
AIOHTTP Server In Python
"""Main file for performing url shortening"""
from aiohttp import web
# instead of adding routes one by one we use the RouteTtableDef which will auto collect all @route annotations
routes = web.RouteTableDef()
# this will create a route 127.0.0.1:8000/shorten
@routes.get("/shorten")
async def shorten(request):
"""Function to accept HTTP request with long url & call shortening logic
@jaydeepkarale
jaydeepkarale / validateurls.py
Last active June 24, 2022 16:25
Validate URL Snippets
from aiohttp import web
from http import HTTPStatus
import validators
import requests
def validate_url_format(longurl: str):
"""This function returns True if the longurl is in a valid format"""
return validators.url(longurl)
@jaydeepkarale
jaydeepkarale / shortening.py
Created June 23, 2022 12:40
Ngrok & Shortening
import random
import json
import string
# get the ngrok tunnel url
def get_ngrok_url():
"""Function to get ngrok url"""
url = "http://localhost:4040/api/tunnels"
res = requests.get(url)
res_unicode = res.content.decode("utf-8")
@jaydeepkarale
jaydeepkarale / db.py
Created June 23, 2022 12:50
Initialise a sqlitedb
import sqlite3
from aiohttp import web
# create a sqllite db
connection = sqlite3.connect("urlshortner.db")
cursor = connection.cursor()
routes = web.RouteTableDef()
if __name__ == "__main__":
@jaydeepkarale
jaydeepkarale / integtratevalidatorwithshorten.py
Last active June 24, 2022 16:26
Integrate Validators With Shorten Method
def validate_url_format(longurl: str):
"""This function returns True if the longurl is in a valid format"""
return validators.url(longurl)
def validate_url(longurl: str):
"""This function returns True if the longurl is a valid web address"""
try:
headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:80.0) Gecko/20100101 Firefox/80.0'}
response = requests.get(longurl, headers=headers)
return response.status_code == HTTPStatus.OK
@jaydeepkarale
jaydeepkarale / redirect_to_longurl.py
Created June 23, 2022 13:03
redirect logic for url shortner
@routes.get("/{code}")
async def redirect_to_longurl(request):
"""Function to retrieve long URL based on code
:param request: HTTP request
"""
data = request.match_info["code"]
longurl = cursor.execute("SELECT longurl from URLSHORTNER where code = ?",(data,)).fetchone()
print(longurl[0])
return web.HTTPFound(longurl[0])
@jaydeepkarale
jaydeepkarale / urlshortner.py
Last active June 24, 2022 16:26
URL Shortner In Pure Python & Ngrok
from email import header
from aiohttp import web
import sqlite3
import validators
import requests
import requests.exceptions
from http import HTTPStatus
import json
import string
import random
@jaydeepkarale
jaydeepkarale / app.py
Created July 26, 2022 13:19
Flask CRUD App In 60 Secodnds
from flask import Flask, request, Response, jsonify
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
db = SQLAlchemy(app)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
class Todo(db.Model):
from turtle import *
import turtle as tur
t = tur.Turtle()
tur.speed(6)
tur.bgcolor("black")
tur.color("gold")
tur.pensize(5)
@jaydeepkarale
jaydeepkarale / playwright_python_webscraping.py
Last active February 23, 2023 01:24
webscraping on cloud playwright grid in python
import json
import logging
import os
import subprocess
import sys
import time
import urllib
from logging import getLogger
from dotenv import load_dotenv