podcast.html.twig 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <rss
  3. xmlns:atom="http://www.w3.org/2005/Atom"
  4. xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  5. xmlns:podcast="https://podcastindex.org/namespace/1.0"
  6. xmlns:dc="http://purl.org/dc/elements/1.1/"
  7. version="2.0">
  8. <channel>
  9. <atom:link href="http://www.ondarossa.info{{ ror.url | escape("html_attr") }}" rel="self" type="application/rss+xml" />
  10. <title>Radio Onda Rossa</title>
  11. <link>http://www.ondarossa.info</link>
  12. <language>it-it</language>
  13. <itunes:subtitle>La radio di chi se la sente</itunes:subtitle>
  14. <itunes:author>Ondarossa</itunes:author>
  15. <itunes:summary>{{ror.title}}</itunes:summary>
  16. <description>{{ror.title}}</description>
  17. <itunes:owner>
  18. <itunes:name>Ondarossa</itunes:name>
  19. <itunes:email>ondarossa@ondarossa.info</itunes:email>
  20. </itunes:owner>
  21. <itunes:explicit>no</itunes:explicit>
  22. <itunes:image href="http://www.ondarossa.info/favicon.png" />
  23. <itunes:category text="News &amp; Politics"/>
  24. <podcast:funding url="http://www.ondarossa.info/sostieni">Sostieni ondarossa</podcast:funding>
  25. {% for nid, node in ror.podcast.nodes %}
  26. {% set num_audios = node.audio|length %}
  27. {% for num, audio in node.audio %}
  28. <item>
  29. {% set img = node.img.0.uri %}
  30. {% set audiourl = audio.field_audio_link[0].uri %}
  31. {% set ext = audiourl|split('.')|last %}
  32. {% set durata = audio.field_durata[0].value %}
  33. {% set duratahrs = durata // 3600 %}
  34. {% set duratamin = (durata // 60) % 60 %}
  35. {% set duratasec = durata % 60 %}
  36. {% if node.tx != "" %}
  37. {% set author = node.tx %}
  38. {% else %}
  39. {% set author = "Radio Onda Rossa" %}
  40. {% endif %}
  41. <title>{% if node.tx != "" %}[{{node.tx}}] {%endif%}{{node.title.0.value}}{% if num_audios > 1 %} ({{num+1}}/{{num_audios}}: {{audio.field_audio_link[0].title}}){% endif %}</title>
  42. <itunes:summary>{{ node.summary | raw }}</itunes:summary>
  43. <description> {{ node.body.0.value }} </description>
  44. <link>http://www.ondarossa.info{{node.path.0.alias}}</link>
  45. <enclosure url="{{ audiourl | replace({"https://": "http://"}) | escape('html_attr') }}" type="audio/{{ext}}" length="1024"></enclosure>
  46. <podcast:alternateEnclosure default="true" type="audio/{{ext}}" rel="default" >
  47. <podcast:source uri="{{ audiourl | escape('html_attr') }}" />
  48. <podcast:source
  49. uri="{{ audiourl | replace({"https://archive.org/": "https://archive.degenerazione.xyz/"}) | escape('html_attr') }}" />
  50. </podcast:alternateEnclosure>
  51. {% if img != "" %}
  52. {% set img_ext = img|split('.')|last|lower|replace({jpg: 'jpeg'}) %}
  53. <itunes:image href="{{node.img.0.uri}}" type="image/{{img_ext}}" />
  54. {% endif %}
  55. <pubDate>{{ "@#{node.created.0.value}" | date("r") }}</pubDate>
  56. <dc:creator><![CDATA[{{author}}]]></dc:creator>
  57. <itunes:author><![CDATA[{{author}}]]></itunes:author>
  58. <itunes:duration>{{"%02d" | format(duratahrs)}}:{{"%02d" | format(duratamin)}}:{{"%02d" | format(duratasec)}}</itunes:duration>
  59. <itunes:explicit>no</itunes:explicit>
  60. {#
  61. questo if serve per poter fare una transizione senza cambiare di
  62. botto i guid a tutti; tornare qui nel 2022 e lasciare solo il primo
  63. ramo.
  64. Senza questo cambio, se due articoli hanno lo stesso audio, si generano
  65. guid duplicati
  66. #}
  67. {% if node.created.0.value > 1639689963 %}
  68. <guid>{{ audiourl }}@http://www.ondarossa.info{{node.path.0.alias}}@{{num}}</guid>
  69. {% else %}
  70. <guid>{{ audiourl }}</guid>
  71. {% endif %}
  72. </item>
  73. {% endfor %}
  74. {% endfor %}
  75. </channel>
  76. </rss>