Spaces:
Sleeping
Sleeping
Update autotrack.py
Browse files- autotrack.py +27 -2
autotrack.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
# autotrack.py β Unlimited milestones + auto-delete on drawdown
|
| 2 |
import os
|
| 3 |
import re
|
| 4 |
import time
|
|
@@ -48,6 +48,12 @@ DROP_DELETE_RATIO = float(os.environ.get("DROP_DELETE_RATIO", "0.5"))
|
|
| 48 |
# (opsional) juga hapus thread balasan bot yang bertanda BOT_MARKER
|
| 49 |
DELETE_THREAD_REPLIES = os.environ.get("DELETE_THREAD_REPLIES", "0") == "1"
|
| 50 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 51 |
# =========================
|
| 52 |
# HTTP endpoints
|
| 53 |
# =========================
|
|
@@ -316,10 +322,29 @@ class PriceTracker:
|
|
| 316 |
await self._delete_origin_and_replies(item.ca)
|
| 317 |
return # stop tracking setelah dihapus
|
| 318 |
|
| 319 |
-
# --- milestone handling
|
| 320 |
while ratio >= item.next_milestone:
|
| 321 |
text = self._milestone_text(item, item.next_milestone, ratio, cur_price, cur_mcap)
|
| 322 |
await self._send_reply_to_origin(item.ca, text)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 323 |
# Naikkan target ke milestone berikut
|
| 324 |
item.next_milestone = self._next_target_after(item.next_milestone)
|
| 325 |
|
|
|
|
| 1 |
+
# autotrack.py β Unlimited milestones + auto-delete on drawdown + video β₯3Γ
|
| 2 |
import os
|
| 3 |
import re
|
| 4 |
import time
|
|
|
|
| 48 |
# (opsional) juga hapus thread balasan bot yang bertanda BOT_MARKER
|
| 49 |
DELETE_THREAD_REPLIES = os.environ.get("DELETE_THREAD_REPLIES", "0") == "1"
|
| 50 |
|
| 51 |
+
# >>> VIDEO milestone β₯ 3Γ
|
| 52 |
+
# Nama file video di root repo (sefolder dengan autotrack.py). Ubah via env bila perlu.
|
| 53 |
+
MILESTONE_VIDEO = os.environ.get("MILESTONE_VIDEO", "Generating_To_The_Moon_Animation.mp4")
|
| 54 |
+
VIDEO_PATH = os.path.join(os.path.dirname(__file__), MILESTONE_VIDEO)
|
| 55 |
+
VIDEO_MIN_MULTIPLE = float(os.environ.get("VIDEO_MIN_MULTIPLE", "3.0")) # mulai kirim video dari x berapa
|
| 56 |
+
|
| 57 |
# =========================
|
| 58 |
# HTTP endpoints
|
| 59 |
# =========================
|
|
|
|
| 322 |
await self._delete_origin_and_replies(item.ca)
|
| 323 |
return # stop tracking setelah dihapus
|
| 324 |
|
| 325 |
+
# --- milestone handling ---
|
| 326 |
while ratio >= item.next_milestone:
|
| 327 |
text = self._milestone_text(item, item.next_milestone, ratio, cur_price, cur_mcap)
|
| 328 |
await self._send_reply_to_origin(item.ca, text)
|
| 329 |
+
|
| 330 |
+
# >>> VIDEO milestone β₯ 3Γ (atau sesuai VIDEO_MIN_MULTIPLE)
|
| 331 |
+
if item.next_milestone >= VIDEO_MIN_MULTIPLE:
|
| 332 |
+
if os.path.isfile(VIDEO_PATH):
|
| 333 |
+
try:
|
| 334 |
+
key = ca_key_for_db(item.ca)
|
| 335 |
+
reply_to_id = lookup_origin_msg_id(key) if key else None
|
| 336 |
+
await self.client.send_file(
|
| 337 |
+
self.announce_chat,
|
| 338 |
+
VIDEO_PATH,
|
| 339 |
+
caption="π To the Moon! π",
|
| 340 |
+
reply_to=reply_to_id if reply_to_id else None,
|
| 341 |
+
force_document=False
|
| 342 |
+
)
|
| 343 |
+
except Exception as e:
|
| 344 |
+
print(f"[TRACK] gagal kirim video: {e}")
|
| 345 |
+
else:
|
| 346 |
+
print(f"[TRACK] VIDEO_PATH tidak ditemukan: {VIDEO_PATH}")
|
| 347 |
+
|
| 348 |
# Naikkan target ke milestone berikut
|
| 349 |
item.next_milestone = self._next_target_after(item.next_milestone)
|
| 350 |
|