Requestly - Best HTTP Interceptor & Mocking Tool for Web & Mobile Apps
Script
// ==UserScript== // @name Better XVideos.com // @namespace Violentmonkey Scripts // @match https://www.xvideos.com/video* // @grant none // @version 3.0 // @author - // @description Always expand video to large size, scroll down to video, use w a s d to rotate video, q e ` 1 2 3 4 5 z x to seek, v V to frame advance, allow seeking to 0:00, allow clicking anywhere to start video, infinite volume up and down - 2025-05-30, 14:44 // @require https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js // @downloadURL https://update.greasyfork.org/scripts/428264/Better%20XVideoscom.user.js // @updateURL https://update.greasyfork.org/scripts/428264/Better%20XVideoscom.meta.js // ==/UserScript== this.$ = jQuery.noConflict(true); const scrollToVideo = () => { $("div#video-player-bg")[0].scrollIntoView(false); } // Poll until the video has the desired class const scrollToVideoAfterFullWidth = () => { var host = {}; const scrollPoll = (host) => { if ($("div#content")[0].classList.contains("player-enlarged")) { scrollToVideo(); clearInterval(host.id); setTimeout(scrollToVideo, 500); // one more, for Jesus } } host.id = setInterval(scrollPoll.bind(null, host), 5); } $("div#video-player-bg").ready(() => { setTimeout(() => { if (! $("div#content")[0].classList.contains("player-enlarged")) { $("span.pif-full-width")[0].click(); } scrollToVideoAfterFullWidth(); }, 100); }); // Somehow, the below didn't work - the button got added, but when clicking it, // it showed the menu for the next button to the right (originally from xvideos), // and that button showed the menu for the next one, etc. // //$("button#v-actions-overflow-menu").ready(function () { // var rotationButtons = `<button class="tab-button rotate-video-right"><span>Rotate video right (E)</span></button>` // $(rotationButtons).insertAfter("button#v-actions-overflow-menu") //}) const video = $("div#video-player-bg video")[0]; //keyboard handler for various things $("html").ready(() => { // make whole player clickable to start playing $("div.video-pic").click(() => { $("span.pif-play").trigger("click") }); // define our keyboard handler var orientation = 0; // 0, 90, 180, 270 const setVideoOrientation = (angle) => { // set absolute rotation for video if (0 === angle) { // no rotation $("div.video-bg-pic > video").css("transform", ""); return true; } else if(90 === angle) { // rotated to the right const fitScale = Math.min(video.videoWidth / video.videoHeight, video.videoHeight / video.videoWidth); const transform = `rotate(${angle}deg) scale(${fitScale})`; $("div.video-bg-pic > video").css("transform", transform); return true; } else if (180 === angle) { // upside down $("div.video-bg-pic > video").css("transform", "scaleX(-1) scaleY(-1)"); return true; } else if (270 === angle) { // rotated left const fitScale = Math.min(video.videoWidth / video.videoHeight, video.videoHeight / video.videoWidth); const transform = `rotate(${angle}deg) scale(${fitScale})`; $("div.video-bg-pic > video").css("transform", transform); return true; } return false; } const cycleOrientationRight = () => { const desiredOrientation = (orientation % 360) + 90; const moduloOrientation = desiredOrientation % 360; // make sure it's 0...359 orientation = moduloOrientation; } const cycleOrientationLeft = () => { const desiredOrientation = (orientation % 360) - 90; const moduloOrientation = (desiredOrientation + 360) % 360; // make sure it's 0...359. note x % 360 clamps to (-359.999... ... 359.999) orientation = moduloOrientation; } const cycleOrientation180 = () => { const desiredOrientation = (orientation % 360) + 180; const moduloOrientation = desiredOrientation % 360; // make sure it's 0...359 orientation = moduloOrientation; } // Seek to fraction of video between 0 and 1, meaning start and end. const seekFraction = (fraction) => { if((fraction > 1) || (fraction < 0)) { return false; } video.currentTime = video.duration * fraction; return true; } const videoExtraGain = (mediaElem) => { // Chrome compat var context = new(window.AudioContext || window.webkitAudioContext); var result = { context: context, source: context.createMediaElementSource(mediaElem), gain: context.createGain(), media: mediaElem, amplify: function(multiplier) { result.gain.gain.value = multiplier; }, getAmpLevel: function() { return result.gain.gain.value; } }; result.source.connect(result.gain); result.gain.connect(context.destination); result.amplify(1); return result; } const vidGain = videoExtraGain(video); vidGain.amplify(1); var totalGain = video.volume; const gainToDb = (gain) => 20 * Math.log10(gain); const volumeSet = (desiredGain) => { const dBString = gainToDb(desiredGain).toFixed(1); if (desiredGain <= 1) { vidGain.amplify(1); html5player.setVolume(desiredGain); } else { html5player.setVolume(1); vidGain.amplify(desiredGain); } console.log(`Set gain to ${dBString} dB.`); // logging at the end to make it show up after website spam } const volumeUp = () => { const desiredGain = totalGain * (1/0.9); totalGain
Steven savage
Cloudflared darwin amd64
Emmet Cheat Sheet
Cloudflare Tunnel · Cloudflare Zero Trust docs
Cloudflare Tunnel provides you with a secure way to connect your resources to Cloudflare without a publicly routable IP address. With Tunnel, you do not send traffic to an external IP — instead, a lightweight daemon in your infrastructure (cloudflared) creates outbound-only connections to Cloudflare's global network. Cloudflare Tunnel can connect HTTP web servers, SSH servers, remote desktops, and other protocols safely to Cloudflare. This way, your origins can serve traffic through Cloudflare without being vulnerable to attacks that bypass Cloudflare.
Google Drive: Sign-in
Access Google Drive with a Google account (for personal use) or Google Workspace account (for business use).
Infinite Arcadia - Dashboard - Meta for Developers
Overview · Cloudflare Email Routing docs
Cloudflare Email Routing is designed to simplify the way you create and manage email addresses, without needing to keep an eye on additional mailboxes. With Email Routing, you can create any number of custom email addresses to use in situations where you do not want to share your primary email address, such as when you subscribe to a new service or newsletter. Emails are then routed to your preferred email inbox, without you ever having to expose your primary email address.
Origin server · Cloudflare SSL/TLS docs
Learn more about SSL/TLS protection options for your origin servers:
External HD - Google Drive
Access Google Drive with a Google account (for personal use) or Google Workspace account (for business use).
Kaggle Notebook Editor
Kaggle Notebook Editor for Data Scientists.
(5) The Role and Limits of Vibe Coding in Modern Development | daily.dev
Vibe coding, which involves using AI-driven tools for software development, enhances productivity and creativity by automating tasks such as unit testing and code refactoring. However, it presents challenges like inaccurate outputs and security risks. While it can't fully replace human developers, effective use of vibe coding can complement traditional practices, combining AI for efficiency with human expertise to ensure code integrity.
Public Page ― Raindrop.io Help
Your bookmarks and collections are private by default, but with one click, you can generate a public link to share them with entire web.
How to Integrate with Notion
We added a new feature to export Glasp highlights into Notion with Notion API. In this article, we introduce you to how to set up Notion API and start exporting highlights.
If you haven't signed up for Glasp or installed the Glasp browser extension, please do so. You can refer
Introduction - Expo Documentation
Get started creating apps with Expo.
Integrations | Astro
Astro builds fast content sites, powerful web applications, dynamic server APIs, and everything in-between.
@astrojs/cloudflare
Learn how to use the @astrojs/cloudflare adapter to deploy your Astro project.
@astrojs/
cloudflare
v12.5.2
GitHub
npm
Changelog
This adapter allows Astro to deploy your on-demand rendered routes and features to Cloudflare, including server islands, actions, and sessions.
If you’re using Astro as a static site builder, you don’t need an adapter.
Learn how to deploy your Astro site in our Cloudflare deployment guide.
Why Astro Cloudflare
Section titled Why Astro Cloudflare
Cloudflare’s Developer Platform lets you develop full-stack applications with access to resources such as storage and AI, all deployed to a global edge network. This adapter builds your Astro project for deployment through Cloudflare.
Installation
Section titled Installation
Astro includes an astro add command to automate the setup of official integrations. If you prefer, you can install integrations manually instead.
Add the Cloudflare adapter to enable server-rendering in your Astro project with the astro add command. This will install @astrojs/cloudflare and make the appropriate changes to your astro.config.mjs file in one step.
npm
pnpm
Yarn
Terminal window
npx astro add cloudflare
Now, you can enable on-demand rendering per page, or set your build output configuration to output: 'server' to server-render all your pages by default.
Manual Install
Section titled Manual Install
First, add the @astrojs/cloudflare adapter to your project’s dependencies using your preferred package manager.
npm
pnpm
Yarn
Terminal window
npm install @astrojs/cloudflare
Then, add the adapter to your astro.config.mjs file:
astro.config.mjs
import { defineConfig } from 'astro/config';
import cloudflare from '@astrojs/cloudflare';
export default defineConfig({
adapter: cloudflare(),
});
Options
Section titled Options
The Cloudflare adapter accepts the following options:
cloudflareModules
Section titled cloudflareModules
Type: boolean
Default: true
Enables imports of .wasm, .bin, and .txt modules.
This functionality is enabled by default. If you’d like to disable, set cloudflareModules to false.
imageService
Section titled imageService
Type: 'passthrough' | 'cloudflare' | 'compile' | 'custom'
Default: 'compile'
Determines which image service is used by the adapter. The adapter will default to compile mode when an incompatible image service is configured. Otherwise, it will use the globally configured image service:
cloudflare: Uses the Cloudflare Image Resizing service.
passthrough: Uses the existing noop service.
compile: Uses Astro’s default service (sharp), but only on pre-rendered routes at build time. For pages rendered on-demand, all astro:assets features are disabled.
custom: Always uses the image service configured in Image Options. This option will not check to see whether the configured image service works in Cloudflare’s workerd runtime.
astro.config.mjs
import { defineConfig } from "astro/config";
import cloudflare from '@astrojs/cloudflare';
export default defineConfig({
adapter: cloudflare({
imageService: 'cloudflare'
}),
})
platformProxy
Section titled platformProxy
Determines whether and how the Cloudflare runtime is added to astro dev. It contains proxies to local workerd bindings and emulations of Cloudflare specific values, allowing the emulation of the runtime in the Node.js dev process. Read more about the Cloudflare Runtime.
Note
Proxies provided by this are a best effort emulation of the real production. Although they are designed to be as close as possible to the real thing, there might be a slight differences and inconsistencies between the two.
platformProxy.enabled
Section titled platformProxy.enabled
Type: boolean
Default: true
Determines whether to enable the Cloudflare runtime in development mode.
platformProxy.configPath
Section titled platformProxy.configPath
Type: string
Default: undefined
Defines the path to the Wrangler configuration file. If no value is set, it tracks wrangler.toml, wrangler.json, and wrangler.jsonc in the project root.
platformProxy.environment
Section titled platformProxy.environment
Type: string
Default: undefined
Sets the Cloudflare environment to use. You must select an environment defined in the Wrangler configuration file, otherwise an error occurs.
platformProxy.persist
Section titled platformProxy.persist
Type: boolean | { path: string }
Default: true
Sets whether and where to save binding data locally to the file system.
If set to true, binding data is stored in .wrangler/state/v3/. It is the same as the default setting for wrangler.
If set to false, binding data is not stored in file system.
If set to { path: string }, binding data is stored in the specified path.
Note
wrangler’s --persist-to option adds a sub directory called v3 under the hood while the @astrojs/cloudflare persist property does not. For example, to reuse the same location as running wrangler dev --persist-to ./my-directory, you must specify: persist: { path: "./my-directory/v3" }.
The following configuration shows an example of enabling the Cloudflare r
How Cloudflare CDN works · Cloudflare Fundamentals docs
To optimize your website or web application, Cloudflare provides DNS and CDN services, so we can reverse proxy the web traffic to and from your domain.
Firebase News feed | daily.dev
daily.dev is the easiest way to stay updated on the latest programming news. Get the best content from the top tech publications on any topic you want.
ChatGPT
CodePen - A Pen by Cybersoulja
...
(20+) SSH into your private machines from anywhere, for free, using Cloudflare Tunnel | daily.dev
This guide uses Cloudflare Tunnel, a service by Cloudflar with a free-tier. It will filter traffic to your machines through the network, including authenticating you. Because of this, your machines won't directly be exposed to threat actors and "1337 haxors"
SSH into your private machines from anywhere, for free, using Cloudflare Tunnel
SSH to machines in private networks using an SSH key, from anywhere in the world, using Cloudflare Tunnel.
How do I create a Cloudflare subdomain? - Stack Overflow for Teams - Oneseco Media
I’m setting up a subdomain for my Oneseco Media project and want to make sure I do this correctly in Cloudflare. Here are the details: Requirements: • Subdomain: (e.g., blog.oneseco.com) • Domain: oneseco.com (managed via Cloudflare) • Server: MacBook Pro running local development environment • Goal: Route the subdomain to a specific server or service Steps I’ve Taken: 1. Logged into Cloudflare dashboard. 2. Selected the oneseco.com domain. 3. Added a DNS record (Type A or CNAME). 4. Set up a test server to respond to the subdomain. Challenges: • Choosing between A and CNAME records. • Configuring SSL settings for the subdomain. • Making sure the server correctly handles the subdomain requests. Questions: • What is the best practice for choosing between A and CNAME records? • How should I configure my local server to handle the subdomain traffic? • Are there any common pitfalls I should avoid?
Log into Facebook
Get back on Facebook
Sapphire Valarie (@sapphirebaby713.bsky.social) — Bluesky
Oneseco Media · GitHubX | Glasp Reader
Oneseco Media is an AI Automation and App development Agency for underserved communities and small businesses. - Oneseco Media
Wayback Machine