import urllib.request import json import os import subprocess import shutil token = "e3b515eaa0a6683c921ca3bf718e281ed30a6075" owner_repo = "sanjeok77/ShiftRing" tag = "v1.0.4" title = "v1.0.4 - 날짜 옆 근무 뱃지 완벽한 원형/글자 크기 정밀 보정 & 설정 권한 아이콘/색상 시각화 개선" body = """## 🚀 ShiftRing v1.0.4 릴리즈 ### 🌟 주요 변경 및 개선 사항 1. **날짜 옆 근무 뱃지 원형 왜곡 방지 및 글자 가독성 정밀 보정**: - 메모가 있는 날짜의 상단 근무 뱃지(`tvShiftSmall`)를 정원(18dp × 18dp)으로 고정하여 찌그러짐 현상 완벽 방지 - 폰트 패딩 제거(`includeFontPadding=false`) 및 텍스트 크기 정밀 조정으로 '주/석/야/휴/월/연/교' 및 '주맞/야맞/반월' 텍스트가 잘림 없이 100% 선명하게 표시 2. **앱 안정성 설정 (필수) 항목별 아이콘 및 테마 색상 개편**: - 배터리 최적화 제외: 배터리 전용 아이콘(`ic_battery`) + 에메랄드 그린(`#34C759`) - 정확한 알람 허용: 정밀 시계 아이콘(`ic_alarm`) + One UI 블루(`#007AFF`) - 전체화면 알림 허용: 전체화면 인텐트 전용 아이콘(`ic_fullscreen_intent`) + 비비드 퍼플(`#AF52DE`) - 시스템 전체 권한 설정: 시스템 톱니바퀴 아이콘(`ic_settings`) + 앰버 오렌지(`#FF9500`) - 각 권한의 성격과 상태를 한눈에 직관적으로 구분할 수 있도록 시각 계층 대폭 강화 3. **Android 14/15 호환 및 정식 서명키(release.jks) 적용**""" apk_path = "app/build/outputs/apk/release/app-release.apk" if not os.path.exists(apk_path): print(f"APK not found at {apk_path}") exit(1) print(f"Using APK at: {apk_path}") # Create Gitea Release url = f"https://git.webpluss.net/api/v1/repos/{owner_repo}/releases" headers = {"Authorization": f"token {token}", "Content-Type": "application/json"} data = json.dumps({"tag_name": tag, "name": title, "body": body, "draft": False, "prerelease": False}).encode('utf-8') req = urllib.request.Request(url, data=data, headers=headers, method="POST") with urllib.request.urlopen(req) as response: result = json.loads(response.read()) release_id = result["id"] print(f"Created Gitea Release successfully. Release ID: {release_id}") # Upload APK asset upload_url = f"https://git.webpluss.net/api/v1/repos/{owner_repo}/releases/{release_id}/assets" print(f"Uploading APK to {upload_url}...") curl_cmd = f'curl -s -X POST "{upload_url}?name=app.apk" -H "Authorization: token {token}" -F "attachment=@{apk_path}"' upload_result = subprocess.run(curl_cmd, shell=True, capture_output=True, text=True) print(f"Upload output: {upload_result.stdout}") upload_json = json.loads(upload_result.stdout) apk_uuid = upload_json.get("uuid") direct_url = upload_json.get("browser_download_url", f"https://git.webpluss.net/attachments/{apk_uuid}") # Copy APK to project root shutil.copy2(apk_path, "app.apk") print("Updated app.apk at project root.") # Update version.json v_info = { "versionCode": 104, "versionName": "1.0.4", "apkUrl": direct_url, "changelog": "v1.0.4: 날짜 옆 근무 뱃지 원형 정밀 보정 & 글자 가독성 개선, 앱 안정성 설정 아이콘 및 색상 시각화", "forceUpdate": False } with open("version.json", "w", encoding="utf-8") as f: json.dump(v_info, f, ensure_ascii=False, indent=2) print(f"Updated version.json with apkUrl: {direct_url}") # Git commit and push cleanly in UTF-8 git_path = r"C:\Users\work\AppData\Roaming\MobaXterm\slash\mx86_64b\bin" os.environ["PATH"] = git_path + os.pathsep + os.environ.get("PATH", "") commit_msg = "v1.0.4 - 날짜 옆 근무 뱃지 원형 정밀 보정, 앱 안정성 설정 아이콘 및 색상 개편" subprocess.run(["git", "add", "."], check=True) subprocess.run(["git", "commit", "-m", commit_msg], check=True) subprocess.run(["git", "push", "origin", "main"], check=True) print("Git commit and push completed successfully!") print(f"Release {tag} process finished!")