Internet radio browser GUI for music/video streams from various directory services.

⌈⌋ ⎇ branch:  streamtuner2


Check-in [8aa9e67d20]

Overview
Comment:refine dependency list
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:8aa9e67d2057e4514a5ac18fa468f075763e774a
User & Date: mario on 2020-05-21 11:55:11
Other Links: manifest | tags
Context
2020-05-21
12:36
Fix some links, add forgotten reddit help page. Leaf check-in: 3c42414ef6 user: mario tags: trunk
11:55
refine dependency list check-in: 8aa9e67d20 user: mario tags: trunk
11:54
safeguard wiki/links retrieval check-in: 3ab6b3fa94 user: mario tags: trunk
Changes

Modified dev/snapcraft.yaml from [131ff637c3] to [25a3306342].

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
..
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
..
95
96
97
98
99
100
101




# Terrible idea. Snap isn't very fit to harbour python desktop apps.
# Bloats up the whole package to 65MB (from 450K). The pyz→zip roundtrip
# is also fairly redundant.



name: streamtuner2
version: 2.2.1+2020-05
summary: Directory browser for internet radio, audio and video streams
description: |
 Streamtuner2 is a GUI for browsing internet radio directories,
 music collections, and video services - grouped by genres or
 categories. It runs your preferred audio player or streamripper
 for recording.
 |
 This SNAP package is just for testing. The DEB or PYZ are significantly
 smaller and faster to install.
icon: ./icon.png
grade: stable
base: core18
confinement: strict

parts:


  # pull in python2 + libs
  python:
    plugin: python
    python-version: python2
    python-packages: [requests,pyquery,lxml,six,urllib3,pillow]
    after: [desktop-gtk2]
    stage-packages:
      - python-gtk2

  # use prepared pyz in zip
  st2:
    plugin: dump
................................................................................
    make-parameters: ["FLAVOR=gtk2"]
    build-packages:
      - build-essential
      - libgtk2.0-dev
    stage-packages:
      - libxkbcommon0  # XKB_CONFIG_ROOT
      - ttf-ubuntu-font-family
      - dmz-cursor-theme
      - light-themes
      - adwaita-icon-theme
      - gnome-themes-standard
      - shared-mime-info
      - libgtk2.0-0
      - libgdk-pixbuf2.0-0
      - libglib2.0-bin
      - libgtk2.0-bin
      - unity-gtk2-module
      - locales-all
      - libappindicator1
      - xdg-user-dirs
      - ibus-gtk
      - libibus-1.0-5













apps:
  pyz:
    command: desktop-launch $SNAP/streamtuner2.pyz
    plugs:
    - x11
    - home
    - network
    - desktop # needed for a lot of gtk3 and glib interaction with the host system
    - desktop-legacy # needed for accessibility tools IIRC




plugs:
  gtk-2-engines:
    interface: content
    target: $SNAP/lib/gtk-2.0
    default-provider: gtk2-common-themes
  gtk-2-themes:
................................................................................
    interface: content
    target: $SNAP/data-dir/icons
    default-provider: gtk-common-themes
  sound-themes:
    interface: content
    target: $SNAP/data-dir/sounds
    default-provider: gtk-common-themes






|
>

>

|












|

<

>




|







 







|









|




>
>
>
>
>
>
>
>
>
>
>
>










>
>
>







 







>
>
>
>
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
..
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
...
112
113
114
115
116
117
118
119
120
121
122
# Terrible idea. Snap isn't very fit to harbour python desktop apps.
# Bloats up the whole package to 65MB (from 450K). The pyz→zip roundtrip
# is also fairly redundant. (But the pyz is more relocatable than using
# the plain deb / make install setup.)


name: streamtuner2
version: 2.2.2-rc1
summary: Directory browser for internet radio, audio and video streams
description: |
 Streamtuner2 is a GUI for browsing internet radio directories,
 music collections, and video services - grouped by genres or
 categories. It runs your preferred audio player or streamripper
 for recording.
 |
 This SNAP package is just for testing. The DEB or PYZ are significantly
 smaller and faster to install.
icon: ./icon.png
grade: stable
base: core18
confinement: classic   # `strict` wouldn't allow exec of audacious/vlc/etc., which kinda defeats the purpose of st2



parts:
  # pull in python2 + libs
  python:
    plugin: python
    python-version: python2
    python-packages: [requests,pyquery,lxml,six,"urllib3[secure]",pillow]
    after: [desktop-gtk2]
    stage-packages:
      - python-gtk2

  # use prepared pyz in zip
  st2:
    plugin: dump
................................................................................
    make-parameters: ["FLAVOR=gtk2"]
    build-packages:
      - build-essential
      - libgtk2.0-dev
    stage-packages:
      - libxkbcommon0  # XKB_CONFIG_ROOT
      - ttf-ubuntu-font-family
      #- dmz-cursor-theme
      - light-themes
      - adwaita-icon-theme
      - gnome-themes-standard
      - shared-mime-info
      - libgtk2.0-0
      - libgdk-pixbuf2.0-0
      - libglib2.0-bin
      - libgtk2.0-bin
      - unity-gtk2-module
      #- locales-all
      - libappindicator1
      - xdg-user-dirs
      - ibus-gtk
      - libibus-1.0-5

  # https://forum.snapcraft.io/t/simple-trick-to-reduce-size-and-startup-time-of-gnome-based-snaps/12006
  cleanup:
    after: [ python, st2, desktop-gtk2 ]
    plugin: nil
    build-snaps: [ gnome-3-28-1804 ]
    override-prime: |
      set -eux
      cd /snap/gnome-3-28-1804/current
      find . -type f,l -exec rm -f $SNAPCRAFT_PRIME/{} \;
      #cd $SNAPCRAFT_PRIME/usr/lib/locale
      #find . -type f,l -exec rm -f $SNAPCRAFT_PRIME/{} \;

apps:
  pyz:
    command: desktop-launch $SNAP/streamtuner2.pyz
    plugs:
    - x11
    - home
    - network
    - desktop # needed for a lot of gtk3 and glib interaction with the host system
    - desktop-legacy # needed for accessibility tools IIRC
    - gtk-2-engines
    - gtk-2-themes
    #- gnome-3-28-1804

plugs:
  gtk-2-engines:
    interface: content
    target: $SNAP/lib/gtk-2.0
    default-provider: gtk2-common-themes
  gtk-2-themes:
................................................................................
    interface: content
    target: $SNAP/data-dir/icons
    default-provider: gtk-common-themes
  sound-themes:
    interface: content
    target: $SNAP/data-dir/sounds
    default-provider: gtk-common-themes
#  gnome-3-28-1804:
#    interface: content
#    target: $SNAP/gnome-platform
#    default-provider: gnome-3-28-1804

Modified st2.py from [9801108f7e] to [9760f83ba6].

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

17
18
19
20
21
22
23
..
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/usr/bin/env python
# encoding: UTF-8
# api: python
# type: application
# title: streamtuner2
# description: Directory browser for internet radio, audio and video streams
# version: 2.2.1+2020-05
# state: stable
# author: Mario Salzer <mario@include-once.org>
# license: Public Domain
# url: http://freshcode.club/projects/streamtuner2
# config:  
#   { type: env, name: HTTP_PROXY, description: proxy for HTTP access }
#   { type: env, name: XDG_CONFIG_HOME, description: relocates user .config subdirectory }
# category: sound
# depends: pygtk | gi, threading, requests, pyquery, lxml

# alias: streamtuner2, main
# id: st2
# pack: *.py, gtk3.xml.gz, bin, channels/__init__.py, bundle/*.py, CREDITS, help/index.page,
#   streamtuner2.desktop, README, help/streamtuner2.1=/usr/share/man/man1/,
#   NEWS=/usr/share/doc/streamtuner2/, icon.png=/usr/share/pixmaps/streamtuner2.png
# architecture: all
#
................................................................................
#
# It's an independent rewrite of streamtuner1. Being written in
# Python, can be more easily extended and fixed. The mix of
# JSON APIs, regex or PyQuery extraction simplifies collecting
# station lists.
#
# Primarily radio stations are displayed, some channels however
# are music collections. Commercial and sign-up services are not
# an objective.


# standard modules
import sys
import os
import re
from copy import copy

|




|








|
>







 







|
|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
..
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/usr/bin/env python
# encoding: utf-8
# api: python
# type: application
# title: streamtuner2
# description: Directory browser for internet radio, audio and video streams
# version: 2.2.2-rc1
# state: stable
# author: Mario Salzer <mario@include-once.org>
# license: Public Domain
# url: http://freshcode.club/projects/streamtuner2
# config:  
#   { type: env, name: HTTP_PROXY, description: proxy for HTTP access }
#   { type: env, name: XDG_CONFIG_HOME, description: relocates user .config subdirectory }
# category: sound
# depends: python (>= 2.7) | python3 (>= 3.2), python:pygtk | python:gobject,
#   python:requests (>= 1.1), python:pyquery, python:pillow, python:xdg
# alias: streamtuner2, main
# id: st2
# pack: *.py, gtk3.xml.gz, bin, channels/__init__.py, bundle/*.py, CREDITS, help/index.page,
#   streamtuner2.desktop, README, help/streamtuner2.1=/usr/share/man/man1/,
#   NEWS=/usr/share/doc/streamtuner2/, icon.png=/usr/share/pixmaps/streamtuner2.png
# architecture: all
#
................................................................................
#
# It's an independent rewrite of streamtuner1. Being written in
# Python, can be more easily extended and fixed. The mix of
# JSON APIs, regex or PyQuery extraction simplifies collecting
# station lists.
#
# Primarily radio stations are displayed, some channels however
# are music collections or video platforms. Commercial and sign-up
# services are not an objective.


# standard modules
import sys
import os
import re
from copy import copy