Skip to content

Instantly share code, notes, and snippets.

View SelimEmre's full-sized avatar
🎯
Focusing

Selim Emre Toy SelimEmre

🎯
Focusing
View GitHub Profile
@SelimEmre
SelimEmre / qrcode.controller.ts
Last active June 1, 2023 22:02
QRCode REST Controller in NestJS(serving PNG or PDF without saving storage)
import { Controller, Get, Query, Res } from '@nestjs/common';
import { ApiBearerAuth, ApiOkResponse, ApiOperation, ApiPropertyOptional, ApiQuery, ApiTags } from '@nestjs/swagger';
import { QrCodeFormat } from './enums/qr-code-format.enum';
import { GetUser } from '../common/decorators/get-user.decorator';
import { Response } from 'express';
import { IsEnum, IsOptional } from 'class-validator';
import { QrcodeService } from './qrcode.service';
export class QrCodeFormatQuery {
@ApiPropertyOptional()
@SelimEmre
SelimEmre / qrcode.service.ts
Created June 1, 2023 21:59
QRCode REST Services in NestJS(serving PNG or PDF without saving storage)
import { Injectable, InternalServerErrorException } from '@nestjs/common';
import * as QRCode from 'qrcode';
import { PDFDocument } from 'pdf-lib';
@Injectable()
export class QrcodeService {
public constructor() {}
async pngQrCodeDownload(publicId: string): Promise<Buffer> {
#!/bin/bash
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw allow 443/tcp
sudo ufw allow 80/tcp
<html>
<head>
<title>Ant Media Server WebRTC Conference Room</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta charset="UTF-8">
<link rel="stylesheet"
href="css/external/bootstrap4/bootstrap.min.css"
>
<script src="js/external/adapter-latest.js"></script>
<script src="js/external/jquery-3.4.1.min.js"></script>
@SelimEmre
SelimEmre / jwks.json
Created July 12, 2021 17:50
jwks.json
{
"keys": [
{
"use": "sig",
"kty": "RSA",
"kid": "public:c424b67b-fe28-45d7-b015-f79da50b5b21",
"alg": "RS256",
"n": "sttddbg-_yjXzcFpbMJB1fIFam9lQBeXWbTqzJwbuFbspHMsRowa8FaPw44l2C9Q42J3AdQD8CcNj2z7byCTSC5gaDAY30xvZoi5WDWkSjHblMPBUT2cDtw9bIZ6FocRp46KaKzeoVDv3a0EBg5cdAdrefawfZoruPZCLmyLqXZmBM8RbpYLChb-UFO25i7e4AoRJ2hNFYg0qM-hRZNwLliDfkafjnOgSu7_w0WDInNzbUuy26rb_yDNGEIylXHlt0BKcMoeO3sJEwS5EDAkXkvz_7zQ6lgDQ4OLihC4QDwkp7dV2iQxvd7D-XEaSIahiqdHlqR8cUYOJANDVRIufAzzkyK8Shu_MXhVUW7hH3hNjlEh198bCWANHcsZWF2_V78Rl-UzCjsAFWtttf6FYpR9Kt-8ILM3aAYTAk3OwsvzSeqTtWLHp96QE8Bcm1AmZfPWzsd3PpLuSM_wfx4oxDWhdaKQ-HK1hCYLNv2Vity2uNC_tbGxOD9syRujWKS6wFf2b3jFEudV0NUXQ_1Beu8Ir0jHzuA_0D22wgiaSJ9svfpJ7XyoD6fxyHSyhpMsXIDLmnwOPKmD67MFQ7Bv_9H91KZmr34oeh6PVWEwb4wUAkDaCebo6h0gdMoDfZTq9Gn5S-Aq0-_-fIfyN9qrrQ0E1Q_QDhvqXx8eQ1r9smM",
"e": "AQAB"
},
@SelimEmre
SelimEmre / jwks-sample.json
Last active June 28, 2021 15:55
jwks-sample.json
{"keys":[{"use":"sig","kty":"RSA","kid":"public:40032c1b-9242-4e99-b29d-bf43b5e30ec5","alg":"RS256","n":"uPhUm_MnwVvPfu1lQDKPkGX56b0c532eaW7xijInnEm-TX0edKQV4xHgkmgO1zC8BC_MIK-4bysFZoQICpPBvwKAqFLvkhlDiJsRhjXKQT-QACw2rMHNe0DefZfh6jJcCr3ORbzomqjJ9F50jg2DAL_mtkeEuhUX8LirFbAB9TKcqwQld_G3XtP7Vydz0K-UgHQG_4dCAEOXJfgIrWROu-Qi6MdRGIYd1zy9XnmdMGZm5w-45up8Zun3CgPcDyaT0wJTiZRt8AXTBAvv0pjdJ3JzFqDc3TU1Sddr-epRiDhj-mqkzPTWS_6dhuu2UqCEWqdmpzjLBpKDJlLk1Nb80T_ZKclL1XnUa2_pMM0aXDBisv_vnrmAojAGrZnbOK6Wf4ddHLmteotM2hqr2ctk_ebCY8r1crFeQNYai4Utj2Ig8iE9LdnNIT0M12TCmu0ia1f_gW6Z-7nzoMqY_bs2nd8tPk4hb-YfCRNxiTbItJwT3f7E5OBAXG4-2wHkinxQNxcKmu2wtwDMLYqfrdcdB8nNJWq-X7EW2i1D0hlotiWXzcy-4W-T8KOUtWVp6XnEhEIszjGlBc_rWGOfs-FCIGzkZ_S8J48ORaJbkLLTlewnnkTJ5053qwSqzbhKyv3ONyS1cjGX9KDTlJff31kcyEn4uGwKTvXMNPfHhImjNEU","e":"AQAB"},{"use":"sig","kty":"RSA","kid":"public:f7910e9b-e25b-456b-b034-ace39174cec3","alg":"RS256","n":"2JDBC52I2pt8Q4t30uVZcvRoVhtFgGVWADO4p1PXOwTk_q5IXfDTH14_LM4kkvOP1tIypc1ufuVH8FI9lD8t9XzgTs-TsBJ_lsbHViqqXRnhmEjkVyaBKg7fE8pSSG
5Rb7NW6FWFGqPpRr
https://gist.githubusercontent.com/SelimEmre/d82e8714a1e46dd21381d7498bbe5887/raw/3059ba5340a9a9dff48c8ff7758eca841c5c3724/hls_aes.key
https://gist.githubusercontent.com/SelimEmre/d82e8714a1e46dd21381d7498bbe5887/raw/3059ba5340a9a9dff48c8ff7758eca841c5c3724/hls_aes.key
0123456789ABCDEF0123456789ABCDEF
@SelimEmre
SelimEmre / stream-merger.js
Created May 30, 2021 23:22
Stream Merger JS file
export class StreamMerger{
constructor(width, height, autoMode, aspectRatio){
this.streams = [];
this.width = width;
this.height = height;
const AudioContext = window.AudioContext || window.webkitAudioContext
this.audioCtx = new AudioContext();
this.audioDestination = this.audioCtx.createMediaStreamDestination()
this.autoMode = autoMode;
@SelimEmre
SelimEmre / Audio_bi-directional.html
Created May 12, 2021 08:24
Audio Bi-directional page
<html>
<head>
<title>Ant Media Server WebRTC Audio Publish</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta charset="UTF-8">
<link rel="stylesheet"
href="css/external/bootstrap3/bootstrap.min.css"
integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<script src="js/external/adapter-latest.js"></script>
<script