podcast.html.twig 4.2 KB

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