mytunes-pro 1.9.8__tar.gz → 2.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mytunes-pro
3
- Version: 1.9.8
3
+ Version: 2.0.0
4
4
  Summary: A lightweight, keyboard-centric terminal player for streaming YouTube music.
5
5
  Author-email: loxo <loxo5432@gmail.com>
6
6
  Project-URL: Homepage, https://github.com/postgresql-co-kr/mytunes
@@ -19,9 +19,11 @@ Dynamic: license-file
19
19
 
20
20
  # 🎵 MyTunes Pro (Korean)
21
21
 
22
- **현대적인 CLI 유튜브 뮤직 플레이어 (v1.9.8)**
23
- 터미널 환경에서 **YouTube 음악을 검색하여 듣는** 가볍고 빠른 키보드 중심의 플레이어입니다.
24
- 한국어 입력 환경에서도 **숫자 키(1~5)**를 통해 지연 없는 쾌적한 조작이 가능합니다.
22
+ ## 🚀 Professional TUI Music Player v2.0.0
23
+
24
+ MyTunes Pro는 **Context7**의 심층 리서치를 기반으로 제작된 **Premium CLI Music Player**입니다.
25
+ Python `curses` 라이브러리를 사용하여 터미널 환경에서도 **GUI급의 유려한 UX**를 제공하며,
26
+ `mpv` 플레이어의 강력한 IPC 제어 기능을 통해 끊김 없는 백그라운드 재생을 지원합니다.
25
27
 
26
28
  > **💡 개발 배경**
27
29
  > 이 프로그램은 하루 종일 터미널을 보는 개발자들이 **작업 흐름을 끊지 않고** 편하게 음악을 듣기 위해 만들어졌습니다.
@@ -208,7 +210,7 @@ Windows 환경에서 한글 검색이 안 되거나 설치가 어려운 분들
208
210
 
209
211
  # 🎵 MyTunes Pro (English)
210
212
 
211
- **Modern CLI YouTube Music Player (v1.9.8)**
213
+ **Modern CLI YouTube Music Player (v1.9.9)**
212
214
  A lightweight, keyboard-centric terminal player for streaming YouTube music.
213
215
 
214
216
  ---
@@ -296,6 +298,13 @@ sudo apt install mpv python3 python3-pip pipx python3-venv -y
296
298
 
297
299
  ## 🔄 Changelog
298
300
 
301
+ ### v1.9.9 (Domain Migration & Realtime Sync)
302
+
303
+ - **Domain Migration**: Updated all branding and internal links to support `mytunes-pro.com`.
304
+ - **Realtime Stability**: Fixed critical state-management bugs in the live dashboard that caused list clearing and duplicated track entries.
305
+ - **Pusher Channel Synchronization**: Unified communication across the transition to ensure zero-latency sharing on the new `mytunes-pro` channel.
306
+ - **Improved Empty State**: Redesigned the "SIGNAL LOST" screen into a more descriptive "READY TO RECEIVE" interface for better UX.
307
+
299
308
  ### v1.9.8 (Realtime Stabilization)
300
309
 
301
310
  - **UI Refinement**: Implemented in-list "Now Playing" sticky behavior with auto-scroll synchronization for a seamless browsing experience.
@@ -1,8 +1,10 @@
1
1
  # 🎵 MyTunes Pro (Korean)
2
2
 
3
- **현대적인 CLI 유튜브 뮤직 플레이어 (v1.9.8)**
4
- 터미널 환경에서 **YouTube 음악을 검색하여 듣는** 가볍고 빠른 키보드 중심의 플레이어입니다.
5
- 한국어 입력 환경에서도 **숫자 키(1~5)**를 통해 지연 없는 쾌적한 조작이 가능합니다.
3
+ ## 🚀 Professional TUI Music Player v2.0.0
4
+
5
+ MyTunes Pro는 **Context7**의 심층 리서치를 기반으로 제작된 **Premium CLI Music Player**입니다.
6
+ Python `curses` 라이브러리를 사용하여 터미널 환경에서도 **GUI급의 유려한 UX**를 제공하며,
7
+ `mpv` 플레이어의 강력한 IPC 제어 기능을 통해 끊김 없는 백그라운드 재생을 지원합니다.
6
8
 
7
9
  > **💡 개발 배경**
8
10
  > 이 프로그램은 하루 종일 터미널을 보는 개발자들이 **작업 흐름을 끊지 않고** 편하게 음악을 듣기 위해 만들어졌습니다.
@@ -189,7 +191,7 @@ Windows 환경에서 한글 검색이 안 되거나 설치가 어려운 분들
189
191
 
190
192
  # 🎵 MyTunes Pro (English)
191
193
 
192
- **Modern CLI YouTube Music Player (v1.9.8)**
194
+ **Modern CLI YouTube Music Player (v1.9.9)**
193
195
  A lightweight, keyboard-centric terminal player for streaming YouTube music.
194
196
 
195
197
  ---
@@ -277,6 +279,13 @@ sudo apt install mpv python3 python3-pip pipx python3-venv -y
277
279
 
278
280
  ## 🔄 Changelog
279
281
 
282
+ ### v1.9.9 (Domain Migration & Realtime Sync)
283
+
284
+ - **Domain Migration**: Updated all branding and internal links to support `mytunes-pro.com`.
285
+ - **Realtime Stability**: Fixed critical state-management bugs in the live dashboard that caused list clearing and duplicated track entries.
286
+ - **Pusher Channel Synchronization**: Unified communication across the transition to ensure zero-latency sharing on the new `mytunes-pro` channel.
287
+ - **Improved Empty State**: Redesigned the "SIGNAL LOST" screen into a more descriptive "READY TO RECEIVE" interface for better UX.
288
+
280
289
  ### v1.9.8 (Realtime Stabilization)
281
290
 
282
291
  - **UI Refinement**: Implemented in-list "Now Playing" sticky behavior with auto-scroll synchronization for a seamless browsing experience.
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "mytunes-pro"
7
- version = "1.9.8"
7
+ version = "2.0.0"
8
8
  authors = [
9
9
  { name = "loxo", email = "loxo5432@gmail.com" },
10
10
  ]
@@ -23,7 +23,7 @@ warnings.filterwarnings("ignore", message=".*urllib3 v2 only supports OpenSSL 1.
23
23
  import webbrowser
24
24
  import tempfile
25
25
  import shutil
26
- import pusher
26
+
27
27
  import requests
28
28
 
29
29
 
@@ -36,7 +36,7 @@ MPV_SOCKET = "/tmp/mpv_socket"
36
36
  LOG_FILE = "/tmp/mytunes_mpv.log"
37
37
  PID_FILE = "/tmp/mytunes_mpv.pid"
38
38
  APP_NAME = "MyTunes Pro"
39
- APP_VERSION = "1.9.8"
39
+ APP_VERSION = "2.0.0"
40
40
 
41
41
  # === [Strings & Localization] ===
42
42
  STRINGS = {
@@ -442,16 +442,13 @@ class MyTunesApp:
442
442
  signal.signal(signal.SIGHUP, self.handle_disconnect)
443
443
  except: pass
444
444
 
445
- # Pusher Client
446
- try:
447
- self.pusher = pusher.Pusher(
448
- app_id='2106370',
449
- key='44e3d7e4957944c867ec',
450
- secret='0be8e65a287bbccc7369',
451
- cluster='ap3',
452
- ssl=True
453
- )
454
- except: self.pusher = None
445
+ # Enable Mouse Support
446
+ curses.mousemask(curses.ALL_MOUSE_EVENTS | curses.REPORT_MOUSE_POSITION)
447
+ print("\033[?1003h") # Enable mouse tracking
448
+
449
+ # Sharing Client (Serverless Proxy)
450
+ self.pusher = None # Deprecated: Direct Pusher client removed for security
451
+ self.share_api_url = "https://postgresql.co.kr/api/pusher/mytunes"
455
452
  self.sent_history = {}
456
453
 
457
454
 
@@ -588,6 +585,34 @@ class MyTunesApp:
588
585
  self.running = False
589
586
  return
590
587
 
588
+ # Handle Mouse Click
589
+ if key == curses.KEY_MOUSE:
590
+ try:
591
+ _, mx, my, _, bstate = curses.getmouse()
592
+ if bstate & curses.BUTTON1_CLICKED or bstate & curses.BUTTON1_RELEASED:
593
+ h, w = self.stdscr.getmaxyx()
594
+ branding = "mytunes-pro.com/postgresql.co.kr"
595
+ branding_len = len(branding)
596
+ branding_x = w - 2 - branding_len
597
+
598
+ if my == h - 2 and branding_x <= mx < w - 2:
599
+ # Check which part was clicked
600
+ # mytunes-pro.com (first 15 chars)
601
+ # / (1 char)
602
+ # postgresql.co.kr (last 16 chars)
603
+ rel_x = mx - branding_x
604
+ if rel_x < 15:
605
+ url = "https://mytunes-pro.com"
606
+ self.status_msg = f"🌐 Opening {url}..."
607
+ threading.Thread(target=webbrowser.open, args=(url,), daemon=True).start()
608
+ elif rel_x > 15:
609
+ url = "https://postgresql.co.kr"
610
+ self.status_msg = f"🌐 Opening {url}..."
611
+ threading.Thread(target=webbrowser.open, args=(url,), daemon=True).start()
612
+ except:
613
+ pass
614
+ return
615
+
591
616
  # Helper to normalize input for checking
592
617
  k_char = str(key).lower() if isinstance(key, str) else ""
593
618
 
@@ -718,7 +743,7 @@ class MyTunesApp:
718
743
  self.status_msg = "⚠️ Already Shared Recently!"
719
744
  else:
720
745
  try:
721
- # Send to Pusher
746
+ # Send to Serverless Proxy (Secure)
722
747
  payload = {
723
748
  "title": title,
724
749
  "url": url,
@@ -726,13 +751,28 @@ class MyTunesApp:
726
751
  "country": self.dm.get_country(),
727
752
  "timestamp": time.time()
728
753
  }
729
- if self.pusher:
730
- self.pusher.trigger('mytunes-global', 'share-track', payload)
731
- self.sent_history[url] = time.time()
732
- safe_title = self.truncate(title, 50)
733
- self.status_msg = f"🚀 Shared: {safe_title}..."
734
- else:
735
- self.status_msg = "❌ Pusher Error"
754
+
755
+ # v1.9.9 Security Update: Use centralized API with Auth Header
756
+ try:
757
+ headers = {
758
+ "Content-Type": "application/json",
759
+ "x-mytunes-secret": "mytunes-v1-secret-8822"
760
+ }
761
+ resp = requests.post(
762
+ self.share_api_url,
763
+ json=payload,
764
+ headers=headers,
765
+ timeout=3
766
+ )
767
+ if resp.status_code == 200:
768
+ self.sent_history[url] = time.time()
769
+ safe_title = self.truncate(title, 50)
770
+ self.status_msg = f"🚀 Shared: {safe_title}..."
771
+ else:
772
+ self.status_msg = f"❌ Share Error: {resp.status_code}"
773
+ except:
774
+ self.status_msg = "❌ Network Error (API)"
775
+
736
776
  except Exception as e:
737
777
  self.status_msg = f"❌ Share Failed: {str(e)}"
738
778
 
@@ -780,7 +820,7 @@ class MyTunesApp:
780
820
  # Optimized Flag Set (Context7 Research)
781
821
  flags = [
782
822
  f"--app={live_url}",
783
- "--window-size=620,900",
823
+ "--window-size=600,900",
784
824
  "--window-position=100,100",
785
825
  f"--user-data-dir={temp_user_data}",
786
826
  "--no-first-run",
@@ -1302,7 +1342,7 @@ class MyTunesApp:
1302
1342
  self.stdscr.addstr(h - 3, 2, self.t("stopped"), curses.color_pair(1))
1303
1343
 
1304
1344
  # Footer Line 3: System Message & Branding
1305
- branding = "postgresql.co.kr/debate300.com"
1345
+ branding = "mytunes-pro.com/postgresql.co.kr"
1306
1346
  branding_x = w - 2 - len(branding)
1307
1347
 
1308
1348
  # Draw Branding always - Bright/Bold White
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mytunes-pro
3
- Version: 1.9.8
3
+ Version: 2.0.0
4
4
  Summary: A lightweight, keyboard-centric terminal player for streaming YouTube music.
5
5
  Author-email: loxo <loxo5432@gmail.com>
6
6
  Project-URL: Homepage, https://github.com/postgresql-co-kr/mytunes
@@ -19,9 +19,11 @@ Dynamic: license-file
19
19
 
20
20
  # 🎵 MyTunes Pro (Korean)
21
21
 
22
- **현대적인 CLI 유튜브 뮤직 플레이어 (v1.9.8)**
23
- 터미널 환경에서 **YouTube 음악을 검색하여 듣는** 가볍고 빠른 키보드 중심의 플레이어입니다.
24
- 한국어 입력 환경에서도 **숫자 키(1~5)**를 통해 지연 없는 쾌적한 조작이 가능합니다.
22
+ ## 🚀 Professional TUI Music Player v2.0.0
23
+
24
+ MyTunes Pro는 **Context7**의 심층 리서치를 기반으로 제작된 **Premium CLI Music Player**입니다.
25
+ Python `curses` 라이브러리를 사용하여 터미널 환경에서도 **GUI급의 유려한 UX**를 제공하며,
26
+ `mpv` 플레이어의 강력한 IPC 제어 기능을 통해 끊김 없는 백그라운드 재생을 지원합니다.
25
27
 
26
28
  > **💡 개발 배경**
27
29
  > 이 프로그램은 하루 종일 터미널을 보는 개발자들이 **작업 흐름을 끊지 않고** 편하게 음악을 듣기 위해 만들어졌습니다.
@@ -208,7 +210,7 @@ Windows 환경에서 한글 검색이 안 되거나 설치가 어려운 분들
208
210
 
209
211
  # 🎵 MyTunes Pro (English)
210
212
 
211
- **Modern CLI YouTube Music Player (v1.9.8)**
213
+ **Modern CLI YouTube Music Player (v1.9.9)**
212
214
  A lightweight, keyboard-centric terminal player for streaming YouTube music.
213
215
 
214
216
  ---
@@ -296,6 +298,13 @@ sudo apt install mpv python3 python3-pip pipx python3-venv -y
296
298
 
297
299
  ## 🔄 Changelog
298
300
 
301
+ ### v1.9.9 (Domain Migration & Realtime Sync)
302
+
303
+ - **Domain Migration**: Updated all branding and internal links to support `mytunes-pro.com`.
304
+ - **Realtime Stability**: Fixed critical state-management bugs in the live dashboard that caused list clearing and duplicated track entries.
305
+ - **Pusher Channel Synchronization**: Unified communication across the transition to ensure zero-latency sharing on the new `mytunes-pro` channel.
306
+ - **Improved Empty State**: Redesigned the "SIGNAL LOST" screen into a more descriptive "READY TO RECEIVE" interface for better UX.
307
+
299
308
  ### v1.9.8 (Realtime Stabilization)
300
309
 
301
310
  - **UI Refinement**: Implemented in-list "Now Playing" sticky behavior with auto-scroll synchronization for a seamless browsing experience.
File without changes
File without changes