-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathupload.sh
More file actions
122 lines (100 loc) · 4.02 KB
/
upload.sh
File metadata and controls
122 lines (100 loc) · 4.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#!/bin/bash
# Standalone Upload Script for Testing (V2 - More Robust)
# Exit immediately if a command exits with a non-zero status.
set -e
# --- 1. Configuration ---
# المسار الذي يحتوي على ملف الروم
OUTPUT_DIR="out/target/product/RMX1971"
# نمط البحث عن اسم الملف
FILE_PATTERN="*.zip"
# --- 2. Load Environment ---
echo "▶️ Loading environment variables from .env file..."
if [ -f .env ]; then
set -o allexport
source .env
set +o allexport
else
echo "❌ Error: .env file not found! Please create one with your keys."
exit 1
fi
# Validate that the necessary variables are set
if [ -z "$TG_BOT_TOKEN" ] || [ -z "$TG_CHAT_ID" ] || [ -z "$PIXELDRAIN_API_KEY" ]; then
echo "❌ Error: Missing TG_BOT_TOKEN, TG_CHAT_ID, or PIXELDRAIN_API_KEY in your .env file."
exit 1
fi
echo "✅ Environment loaded."
# --- 3. Prerequisite Check (jq) ---
if ! command -v jq &> /dev/null; then
echo "▶️ jq is not found. Attempting to install it locally to ~/bin/"
mkdir -p ~/bin
curl -L -o ~/bin/jq https://github.com/jqlang/jq/releases/download/jq-1.7/jq-linux64
chmod +x ~/bin/jq
# Add to PATH for the current script session
export PATH=$HOME/bin:$PATH
echo "✅ jq installed."
fi
# --- 4. Helper Functions ---
send_telegram_message() {
local message_text="$1"
echo "✉️ Sending message to Telegram..."
curl -s -X POST "https://api.telegram.org/bot$TG_BOT_TOKEN/sendMessage" \
--data-urlencode "chat_id=$TG_CHAT_ID" \
--data-urlencode "text=$message_text" \
--data-urlencode "parse_mode=Markdown" \
--data-urlencode "disable_web_page_preview=true" > /dev/null
echo "✅ Message sent."
}
upload_to_pixeldrain() {
local file_path=$1
if [ -f "$file_path" ]; then
echo "⬆️ Uploading '$(basename "$file_path")' to Pixeldrain..."
RESPONSE=$(curl -s -u ":$PIXELDRAIN_API_KEY" -X POST -F "file=@$file_path" https://pixeldrain.com/api/file)
FILE_ID=$(echo "$RESPONSE" | jq -r '.id')
if [[ "$FILE_ID" != "null" && -n "$FILE_ID" ]]; then
echo "https://pixeldrain.com/u/$FILE_ID"
else
# في حالة الفشل، اطبع الاستجابة الكاملة للمساعدة في التشخيص
echo "error: $RESPONSE"
fi
else
echo "missing"
fi
}
# --- 5. Main Script Logic ---
echo "🔍 Searching for the latest ZIP file in '$OUTPUT_DIR'..."
LATEST_FILE=$(find "$OUTPUT_DIR" -type f -name "$FILE_PATTERN" -printf "%T@ %p\n" | sort -n | tail -n1 | cut -d' ' -f2-)
if [[ -f "$LATEST_FILE" ]]; then
FILE_NAME=$(basename "$LATEST_FILE")
echo "✅ Found file: $FILE_NAME"
UPLOAD_URL=$(upload_to_pixeldrain "$LATEST_FILE")
# --- !! LOGIC IMPROVED HERE !! ---
# طباعة الرابط للتحقق منه في الترمينال
echo "DEBUG: Received response from upload function: '$UPLOAD_URL'"
# التحقق بشكل دقيق من أن الناتج هو رابط صحيح
if [[ -n "$UPLOAD_URL" && "$UPLOAD_URL" == https* ]]; then
# Success!
SIZE_HUMAN=$(numfmt --to=iec --suffix=B $(stat -c%s "$LATEST_FILE"))
MD5SUM=$(md5sum "$LATEST_FILE" | awk '{print $1}')
echo "🎉 Upload successful! URL: $UPLOAD_URL"
MESSAGE="🎉 *Test Upload Complete!* ✨
📦 *File:* \`$FILE_NAME\`
💾 *Size:* \`$SIZE_HUMAN\`
🛡️ *MD5:* \`$MD5SUM\`
🔗 *Download:*
[Link to File]($UPLOAD_URL)"
send_telegram_message "$MESSAGE"
else
# Failure!
echo "❌ Upload failed with an unexpected response."
MESSAGE="❌ *Upload Failed!*
File: \`$FILE_NAME\`
Reason: Received an invalid or empty response from Pixeldrain.
Response: \`$UPLOAD_URL\`"
send_telegram_message "$MESSAGE"
fi
else
echo "❌ No file matching '$FILE_PATTERN' found in '$OUTPUT_DIR'."
send_telegram_message "❌ *Test Upload Failed!*
No file matching \`$FILE_PATTERN\` was found in \`$OUTPUT_DIR\`."
fi
echo "🚀 Script finished."