From 7c643d91be7779030a23e28bfd74b6e05d0f662f Mon Sep 17 00:00:00 2001 From: stoney420 Date: Sat, 28 Jun 2025 06:02:56 +0200 Subject: [PATCH] Update .forgejo/workflows/generate-m3u.yml --- .forgejo/workflows/generate-m3u.yml | 104 +++++----------------------- 1 file changed, 17 insertions(+), 87 deletions(-) diff --git a/.forgejo/workflows/generate-m3u.yml b/.forgejo/workflows/generate-m3u.yml index ce0856c..73932fe 100644 --- a/.forgejo/workflows/generate-m3u.yml +++ b/.forgejo/workflows/generate-m3u.yml @@ -1,4 +1,4 @@ -name: Generate M3U Playlist with Auto-Organization +name: IPTV Playlist Generator on: push: @@ -7,10 +7,10 @@ on: workflow_dispatch: jobs: - build-and-organize: + generate: runs-on: ubuntu-22.04 steps: - - name: Checkout Repository + - name: Checkout uses: actions/checkout@v4 - name: Configure Git @@ -18,99 +18,29 @@ jobs: git config --local user.email "actions@forgejo.plainrock127.xyz" git config --local user.name "IPTV Playlist Bot" - - name: Basic Setup + - name: Run Playlist Generator run: | - echo "Setting up directories..." - mkdir -p reports/daily - echo "Setup completed" + echo "Running playlist generator..." + python3 scripts/generate_playlist.py + echo "Generation completed" - - name: Check Import File + - name: Commit Results run: | - echo "Checking import file..." - if [ -f bulk_import.m3u ]; then - LINES=$(wc -l < bulk_import.m3u) - echo "Found bulk_import.m3u with $LINES lines" - else - echo "Creating empty bulk_import.m3u" - echo '#EXTM3U' > bulk_import.m3u - fi - - - name: Run Playlist Generation - run: | - echo "Running playlist generation..." - if [ -f scripts/generate_playlist.py ]; then - python3 scripts/generate_playlist.py - echo "Playlist generation completed" - else - echo "Error: generate_playlist.py not found" - exit 1 - fi - - - name: Create Simple Report - run: | - echo "Creating report..." - if [ -f playlist.m3u ]; then - CHANNELS=$(grep -c "^#EXTINF" playlist.m3u || echo "0") - echo "Found $CHANNELS channels in playlist" - - DATE=$(date +%Y%m%d_%H%M%S) - REPORT="reports/daily/report_$DATE.md" - - echo "# Playlist Report" > "$REPORT" - echo "Generated: $(date)" >> "$REPORT" - echo "Channels: $CHANNELS" >> "$REPORT" - - echo "Report created: $REPORT" - else - echo "No playlist found" - fi - - - name: Clean Old Reports - run: | - echo "Cleaning old reports..." - cd reports/daily - # Count markdown files - if ls *.md >/dev/null 2>&1; then - COUNT=$(ls *.md | wc -l) - echo "Found $COUNT reports" - if [ "$COUNT" -gt 3 ]; then - echo "Removing excess reports..." - ls -t *.md | tail -n +4 | xargs rm -f - echo "Cleanup done" - fi - else - echo "No reports to clean" - fi - cd ../.. - - - name: Reset Import File - run: | - echo "Resetting import file..." - echo '#EXTM3U' > bulk_import.m3u - echo "Import file reset" - - - name: Commit Changes - run: | - echo "Committing changes..." git add . - if git diff --staged --quiet; then - echo "No changes to commit" - else - CHANNELS="0" - if [ -f playlist.m3u ]; then - CHANNELS=$(grep -c "^#EXTINF" playlist.m3u || echo "0") - fi - git commit -m "📺 Updated playlist with $CHANNELS channels - $(date '+%Y-%m-%d %H:%M')" + if ! git diff --staged --quiet; then + CHANNELS=$(grep -c "^#EXTINF" playlist.m3u 2>/dev/null || echo "0") + git commit -m "📺 Generated playlist: $CHANNELS channels - $(date '+%Y-%m-%d %H:%M')" git push echo "Changes committed" + else + echo "No changes to commit" fi - name: Summary run: | - echo "=== WORKFLOW COMPLETE ===" if [ -f playlist.m3u ]; then CHANNELS=$(grep -c "^#EXTINF" playlist.m3u || echo "0") - echo "✅ Playlist has $CHANNELS channels" - fi - echo "✅ Reports updated" - echo "✅ Repository cleaned" \ No newline at end of file + echo "✅ Success: $CHANNELS channels in playlist" + else + echo "❌ No playlist generated" + fi \ No newline at end of file