Skip to content

Commit

Permalink
0.8.4
Browse files Browse the repository at this point in the history
修复tgph
  • Loading branch information
BlueSkyXN committed Sep 12, 2024
1 parent 22bfbd6 commit 233d20e
Show file tree
Hide file tree
Showing 6 changed files with 89 additions and 6 deletions.
2 changes: 1 addition & 1 deletion cloudflare-page/OneAPI-imgbed-MIX.html
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ <h2>File Upload</h2>
<button type="submit" class="btn btn-primary">Upload</button>
<button type="button" class="btn btn-info" onclick="window.location.href='/tools/imgproxy';">IMGProxy</button>
<button type="button" class="btn btn-info" onclick="window.location.href='https://www.bestipfs.net';">IPFS</button>
<button type="button" id="convertButton" class="btn btn-success" style="display: none;">Transform</button>
<button type="button" id="convertButton" class="btn btn-success" style="display: none;">TGPH</button>
</form>
<div id="result" class="mt-3">
<!-- 上传结果将显示在这里 -->
Expand Down
42 changes: 42 additions & 0 deletions cloudflare-worker-js-api/API_IMG_tgph.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
addEventListener('fetch', event => {
event.respondWith(handleTgphimgRequest(event.request));
});

async function handleTgphimgRequest(request) {
// 确认请求方法为 POST 并且内容类型正确
if (request.method !== 'POST' || !request.headers.get('Content-Type').includes('multipart/form-data')) {
return new Response('Invalid request', { status: 400 });
}

// 解析表单数据
const formData = await request.formData();
const imageFile = formData.get('image'); // 假设字段名为 'image'
if (!imageFile) return new Response('Image file not found', { status: 400 });

// 修改字段名为 'file',以适应 Telegra.ph 的接口
formData.append('file', imageFile);
formData.delete('image'); // 删除原来的 'image' 字段

// Telegra.ph 的上传接口
const targetUrl = 'https://telegra.ph/upload?source=bugtracker';

// 发送修改后的表单数据
const response = await fetch(targetUrl, {
method: 'POST',
body: formData
});

// 处理响应
if (response.ok) {
const result = await response.json();
if (result && result.src) {
// 提取 src 并拼接成完整的 URL
const imageUrl = `https://telegra.ph${result.src.replace(/\\/g, '')}`; // 处理反斜杠
return new Response(imageUrl);
} else {
return new Response('Error: Unexpected response format', { status: 500 });
}
} else {
return new Response('Error: ' + await response.text(), { status: response.status });
}
}
2 changes: 1 addition & 1 deletion cloudflare-worker-js-api/API_IMG_tgphimg.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ async function handleTgphimgRequest(request) {
if (!imageFile) return new Response('Image file not found', { status: 400 });

// Telegra.ph 的上传接口
const targetUrl = 'https://telegra.ph/upload?source=bugtracker';
const targetUrl = 'https://telegra.ph/upload';

// 为了与 Telegra.ph 接口兼容,我们保留表单数据的格式并直接转发
const response = await fetch(targetUrl, {
Expand Down
12 changes: 8 additions & 4 deletions cloudflare-worker-js-api/worker.js
Original file line number Diff line number Diff line change
Expand Up @@ -631,10 +631,14 @@ async function handleRequest(request) {
const imageFile = formData.get('image'); // 假设字段名为 'image'
if (!imageFile) return new Response('Image file not found', { status: 400 });

// 修改字段名为 'file',以适应 Telegra.ph 的接口
formData.append('file', imageFile);
formData.delete('image'); // 删除原来的 'image' 字段

// Telegra.ph 的上传接口
const targetUrl = 'https://telegra.ph/upload?source=bugtracker';

// 为了与 Telegra.ph 接口兼容,我们保留表单数据的格式并直接转发
// 发送修改后的表单数据
const response = await fetch(targetUrl, {
method: 'POST',
body: formData
Expand All @@ -643,9 +647,9 @@ async function handleRequest(request) {
// 处理响应
if (response.ok) {
const result = await response.json();
if (result && result[0] && result[0].src) {
const imageUrl = `https://telegra.ph${result[0].src}`;
// 直接返回图片 URL 而不是 JSON 对象
if (result && result.src) {
// 提取 src 并拼接成完整的 URL
const imageUrl = `https://telegra.ph${result.src.replace(/\\/g, '')}`; // 处理反斜杠
return new Response(imageUrl);
} else {
return new Response('Error: Unexpected response format', { status: 500 });
Expand Down
File renamed without changes.
37 changes: 37 additions & 0 deletions python-uploader/test-tgph.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import requests

# 图片上传接口的URL(与JS代码中一致)
upload_url = "https://telegra.ph/upload?source=bugtracker"

# 要上传的图片路径
image_path = r"F:\Download\20240707-204330.jpg"

# 读取图片文件
with open(image_path, 'rb') as image_file:
# 使用 multipart/form-data 发送文件
files = {
'file': image_file
}

# 向接口发送POST请求
response = requests.post(upload_url, files=files)

# 打印响应状态码和内容
print(f"状态码: {response.status_code}")
print(f"响应内容: {response.text}")

# 检查响应
if response.status_code == 200:
try:
result = response.json()
print(f"完整的JSON响应: {result}")
if isinstance(result, list) and result and 'src' in result[0]:
# 拼接图片的URL
image_url = f"https://telegra.ph{result[0]['src']}"
print(f"Image uploaded successfully: {image_url}")
else:
print(f"Unexpected response format: {response.text}")
except ValueError:
print(f"Failed to parse JSON response: {response.text}")
else:
print(f"Error uploading image: {response.status_code} - {response.text}")

0 comments on commit 233d20e

Please sign in to comment.