-
-
Save samhenrigold/4a082dde823bc3cb62e43a2fc2b12b8e to your computer and use it in GitHub Desktop.
| // ==UserScript== | |
| // @name Medium to Scribe | |
| // @description Redirects Medium.com articles to scribe.rip | |
| // @match *://*/* | |
| // @exclude /^https?://(www\.)?medium\.com/((\?.*)|((m|about|creators|membership)/.*))$/ | |
| // @run-at document-end | |
| // @version 1.2.4 | |
| // @updateURL https://gist.githubusercontent.com/samhenrigold/4a082dde823bc3cb62e43a2fc2b12b8e/raw/medium-to-scribe.js | |
| // ==/UserScript== | |
| /* | |
| I rewrote this script to be more efficient and less prone to breaking. Here's how it works: | |
| 0. Before the script even runs, check to see if the current page is a Medium URL but NOT an article URL. This is to prevent the script from redirecting you from Medium's terms of service or signup pages. | |
| 1. We check if the page you're on is a Medium article by checking for the presence of a specific meta tag in the document head. | |
| 2. Check if we've already written the datetime to this article's localstorage (we use the key "scribeRedirected"). | |
| a. If scribeRedirected is present, we know we've already redirected this article to scribe.rip and you've gone back to Medium for whatever reason (If scribe broke the article or something). | |
| b. If it doesn't exist OR if the datetime is older than 30 seconds in the past, we assume you've been sent to this Medium article and want to get redirected to scribe, so we write the current datetime to localStorage and send you on your way. | |
| */ | |
| // Match <meta property="al:android:package" content="com.medium.reader"> in the document head | |
| if (document.querySelector("meta[property='al:android:package']") && document.querySelector("meta[property='al:android:package']").content === "com.medium.reader") { | |
| // check if localStorage.getItem("scribeRedirected") is empty or if the value is within the last 10 minutes | |
| if (localStorage.getItem("scribeRedirected") === null || (new Date().getTime() - localStorage.getItem("scribeRedirected")) > 30_000) { | |
| localStorage.setItem("scribeRedirected", Date.now()); | |
| window.history.pushState({}, "", window.location.href); | |
| window.location.hostname = "scribe.rip"; | |
| // Make sure the old url is in the history so we can go back to it | |
| } | |
| } |
I think you may need to change from @run-at from document-start to document-end. As of now the script runs before the page even loads, so document.querySelector("meta[property='al:android:package']") will always return null.
good catch, thanks
-- ====================================================
-- สคริปต์ขโมยไข่ (Egg Steal Hub)
-- ====================================================
local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))()
local Window = Rayfield:CreateWindow({
Name = "🥚 สคริปต์ขโมยไข่",
LoadingTitle = "กำลังโหลดสคริปต์...",
LoadingSubtitle = "โดย AI Assistant",
ConfigurationSaving = {
Enabled = false
},
KeySystem = false
})
-- ====================================================
-- ตัวแปรการทำงาน (Variables)
-- ====================================================
local SelectedZone = "Zone 1"
local WalkSpeedValue = 16
local AutoStealEnabled = false
local Player = game.Players.LocalPlayer
-- ====================================================
-- ฟังก์ชันหลัก (Core Functions)
-- ====================================================
-- ฟังก์ชันปรับความเร็วตัวละคร
local function UpdateSpeed(speed)
if Player.Character and Player.Character:FindFirstChild("Humanoid") then
Player.Character.Humanoid.WalkSpeed = speed
end
end
-- อัปเดตความเร็วอัตโนมัติเมื่อตัวละคร เกิดใหม่/ตาย
Player.CharacterAdded:Connect(function(char)
char:WaitForChild("Humanoid")
task.wait(0.5)
UpdateSpeed(WalkSpeedValue)
end)
-- ฟังก์ชันวาร์ปไปขโมยไข่ (ปรับปรุงตำแหน่งพิกัดตามเกมจริง)
local function StealEggAction()
local char = Player.Character
if not char or not char:FindFirstChild("HumanoidRootPart") then return end
-- ค้นหาโซนไข่ใน Workspace (ครอบคลุมโมเดลไข่ทั่วไป)
local eggsFolder = workspace:FindFirstChild("Eggs") or workspace:FindFirstChild("EggFolder") or workspace
for _, obj in pairs(eggsFolder:GetChildren()) do
if string.find(string.lower(obj.Name), "egg") or obj.Name == SelectedZone then
-- วาร์ปไปที่ไข่
if obj:IsA("BasePart") then
char.HumanoidRootPart.CFrame = obj.CFrame + Vector3.new(0, 3, 0)
elseif obj:IsA("Model") and obj.PrimaryPart then
char.HumanoidRootPart.CFrame = obj.PrimaryPart.CFrame + Vector3.new(0, 3, 0)
end
-- จำลองการกดขโมย/เก็บไข่
task.wait(0.1)
if firetouchinterest then
local touchPart = obj:IsA("BasePart") and obj or obj.PrimaryPart
if touchPart then
firetouchinterest(char.HumanoidRootPart, touchPart, 0)
firetouchinterest(char.HumanoidRootPart, touchPart, 1)
end
end
break
end
end
end
-- Loop สำหรับการขโมยไข่อัตโนมัติ
task.spawn(function()
while task.wait(0.5) do
if AutoStealEnabled then
pcall(StealEggAction)
end
end
end)
-- ====================================================
-- สร้างหน้าต่างเมนู (UI Elements)
-- ====================================================
local MainTab = Window:CreateTab("เมนูหลัก", 4483362458) -- ไอคอนเมนู
-- [ฟังก์ชันที่ 1: เลือกโซนที่ต้องการขโมย]
MainTab:CreateDropdown({
Name = "เลือกโซนไข่ที่ต้องการขโมย",
Options = {"Zone 1 (เริ่มต้น)", "Zone 2 (ป่า)", "Zone 3 (หิมะ)", "Zone 4 (ลาวา)", "Zone 5 (อวกาศ)", "ทุกโซน (All Zones)"},
CurrentOption = {"Zone 1 (เริ่มต้น)"},
MultipleOptions = false,
Flag = "ZoneSelect",
Callback = function(Option)
SelectedZone = Option[1]
Rayfield:Notify({
Title = "ระบบขโมยไข่",
Content = "เปลี่ยนเป้าหมายเป็น: " .. SelectedZone,
Duration = 2,
Image = 4483362458,
})
end,
})
-- ปุ่มกดเริ่มขโมย / ปิดการขโมย
MainTab:CreateToggle({
Name = "เปิดระบบขโมยไข่อัตโนมัติ (ทุกโซน)",
CurrentValue = false,
Flag = "AutoStealToggle",
Callback = function(Value)
AutoStealEnabled = Value
end,
})
-- [ฟังก์ชันที่ 2: ปรับความเร็ว 1-1000]
MainTab:CreateSlider({
Name = "ปรับความเร็วเดิน (WalkSpeed)",
Range = {1, 1000},
Increment = 1,
Suffix = " Speed",
CurrentValue = 16,
Flag = "SpeedSlider",
Callback = function(Value)
WalkSpeedValue = Value
UpdateSpeed(Value)
end,
})
-- [ฟังก์ชันที่ 3: ปุ่มวาร์ปไปขโมยไข่ทันที (Manual)]
MainTab:CreateButton({
Name = "ขโมยไข่โซนที่เลือกทันที (1 ครั้ง)",
Callback = function()
StealEggAction()
Rayfield:Notify({
Title = "สำเร็จ!",
Content = "ดำเนินการขโมยไข่เรียบร้อยแล้ว",
Duration = 2,
Image = 4483362458,
})
end,
})
Rayfield:Notify({
Title = "ติดตั้งสคริปต์สำเร็จ",
Content = "สคริปต์ขโมยไข่พร้อมใช้งานแล้ว!",
Duration = 5,
Image = 4483362458,
})
Aspsios
-- ====================================================
-- สคริปต์ขโมยไข่ (Egg Steal Hub)
-- ====================================================
local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))()
local Window = Rayfield:CreateWindow({
Name = "🥚 สคริปต์ขโมยไข่",
LoadingTitle = "กำลังโหลดสคริปต์...",
LoadingSubtitle = "โดย AI Assistant",
ConfigurationSaving = {
Enabled = false
},
KeySystem = false
})
-- ====================================================
-- ตัวแปรการทำงาน (Variables)
-- ====================================================
local SelectedZone = "Zone 1"
local WalkSpeedValue = 16
local AutoStealEnabled = false
local Player = game.Players.LocalPlayer
-- ====================================================
-- ฟังก์ชันหลัก (Core Functions)
-- ====================================================
-- ฟังก์ชันปรับความเร็วตัวละคร
local function UpdateSpeed(speed)
if Player.Character and Player.Character:FindFirstChild("Humanoid") then
Player.Character.Humanoid.WalkSpeed = speed
end
end
-- อัปเดตความเร็วอัตโนมัติเมื่อตัวละคร เกิดใหม่/ตาย
Player.CharacterAdded:Connect(function(char)
char:WaitForChild("Humanoid")
task.wait(0.5)
UpdateSpeed(WalkSpeedValue)
end)
-- ฟังก์ชันวาร์ปไปขโมยไข่ (ปรับปรุงตำแหน่งพิกัดตามเกมจริง)
local function StealEggAction()
local char = Player.Character
if not char or not char:FindFirstChild("HumanoidRootPart") then return end
-- ค้นหาโซนไข่ใน Workspace (ครอบคลุมโมเดลไข่ทั่วไป)
local eggsFolder = workspace:FindFirstChild("Eggs") or workspace:FindFirstChild("EggFolder") or workspace
for _, obj in pairs(eggsFolder:GetChildren()) do
if string.find(string.lower(obj.Name), "egg") or obj.Name == SelectedZone then
-- วาร์ปไปที่ไข่
if obj:IsA("BasePart") then
char.HumanoidRootPart.CFrame = obj.CFrame + Vector3.new(0, 3, 0)
elseif obj:IsA("Model") and obj.PrimaryPart then
char.HumanoidRootPart.CFrame = obj.PrimaryPart.CFrame + Vector3.new(0, 3, 0)
end
-- จำลองการกดขโมย/เก็บไข่
task.wait(0.1)
if firetouchinterest then
local touchPart = obj:IsA("BasePart") and obj or obj.PrimaryPart
if touchPart then
firetouchinterest(char.HumanoidRootPart, touchPart, 0)
firetouchinterest(char.HumanoidRootPart, touchPart, 1)
end
end
break
end
end
end
-- Loop สำหรับการขโมยไข่อัตโนมัติ
task.spawn(function()
while task.wait(0.5) do
if AutoStealEnabled then
pcall(StealEggAction)
end
end
end)
-- ====================================================
-- สร้างหน้าต่างเมนู (UI Elements)
-- ====================================================
local MainTab = Window:CreateTab("เมนูหลัก", 4483362458) -- ไอคอนเมนู
-- [ฟังก์ชันที่ 1: เลือกโซนที่ต้องการขโมย]
MainTab:CreateDropdown({
Name = "เลือกโซนไข่ที่ต้องการขโมย",
Options = {"Zone 1 (เริ่มต้น)", "Zone 2 (ป่า)", "Zone 3 (หิมะ)", "Zone 4 (ลาวา)", "Zone 5 (อวกาศ)", "ทุกโซน (All Zones)"},
CurrentOption = {"Zone 1 (เริ่มต้น)"},
MultipleOptions = false,
Flag = "ZoneSelect",
Callback = function(Option)
SelectedZone = Option[1]
Rayfield:Notify({
Title = "ระบบขโมยไข่",
Content = "เปลี่ยนเป้าหมายเป็น: " .. SelectedZone,
Duration = 2,
Image = 4483362458,
})
end,
})
-- ปุ่มกดเริ่มขโมย / ปิดการขโมย
MainTab:CreateToggle({
Name = "เปิดระบบขโมยไข่อัตโนมัติ (ทุกโซน)",
CurrentValue = false,
Flag = "AutoStealToggle",
Callback = function(Value)
AutoStealEnabled = Value
end,
})
-- [ฟังก์ชันที่ 2: ปรับความเร็ว 1-1000]
MainTab:CreateSlider({
Name = "ปรับความเร็วเดิน (WalkSpeed)",
Range = {1, 1000},
Increment = 1,
Suffix = " Speed",
CurrentValue = 16,
Flag = "SpeedSlider",
Callback = function(Value)
WalkSpeedValue = Value
UpdateSpeed(Value)
end,
})
-- [ฟังก์ชันที่ 3: ปุ่มวาร์ปไปขโมยไข่ทันที (Manual)]
MainTab:CreateButton({
Name = "ขโมยไข่โซนที่เลือกทันที (1 ครั้ง)",
Callback = function()
StealEggAction()
Rayfield:Notify({
Title = "สำเร็จ!",
Content = "ดำเนินการขโมยไข่เรียบร้อยแล้ว",
Duration = 2,
Image = 4483362458,
})
end,
})
Rayfield:Notify({
Title = "ติดตั้งสคริปต์สำเร็จ",
Content = "สคริปต์ขโมยไข่พร้อมใช้งานแล้ว!",
Duration = 5,
Image = 4483362458,
})
Asffcghbvc.lua
Thank you very much! I was trying to make this userscript but since I am new to JS I couldn't do that! Then I just came across your script. What a relief!
Take my eternal gratitude!