aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md15
-rw-r--r--index.html.erb35
-rw-r--r--lib/events.rb2
-rw-r--r--lib/i18n.rb8
-rwxr-xr-xramaskrik-program.rb9
-rw-r--r--styles.css1
6 files changed, 43 insertions, 27 deletions
diff --git a/README.md b/README.md
index e618284..dac22e6 100644
--- a/README.md
+++ b/README.md
@@ -6,13 +6,14 @@ Siden som genereres av scriptet krever en nettleser med SVG 1.1 støtte, noe [de
## Bruksanvisning
-Programmet tar en `.json` fil med data som input. Dataene må være en json liste (array) hvor hvert object i listen er en visning. Hver visning må ha følgende felter:
+Programmet tar en `.json` fil med data som input. Dataene må være en json liste (array) hvor hvert objekt i listen er en visning. Hver visning må ha følgende felter:
- title: tekst, Filmens tittel
- venue: telst, Sal/auditorium/rom for visningen
- start\_time: tid+dato i et noenlunde maskinlesbart standardformat (ISO8601 er fint!)
- duration: Visningens lengde i sekunder
- image: url til filmplakat (valgfritt)
+- info_link: Lenke til informasjon om filmen
Her er et eksempel fra en fil:
@@ -23,7 +24,8 @@ Her er et eksempel fra en fil:
"venue":"Storsalen",
"start_time":"2023-10-19 10:30:00 +0200",
"duration":"6300",
- "image":"https://mff.dx.no/132216.jpeg?w=270&h=480&fit=crop&auto=compress"
+ "image":"https://mff.dx.no/132216.jpeg?w=270&h=480&fit=crop&auto=compress",
+ "info_link":"https://ramaskrik.no/the-rows-DXM20250679"
},
{
...
@@ -37,17 +39,16 @@ Kjør programmet slik:
% ruby ramaskrik-program.rb <input-fil.json>
```
-Den skal da generere en `index.html` og en `program.ics` (kalender) fil i samme katalog.
+Den skal da generere en webside under `build` katalogen, som inneholder alt som trengs for siden.
-Last opp disse til et egnet sted på en webserver, og du har ditt eget ramaskrik program.
+Last opp denne til et egnet sted på en webserver, og du har ditt eget ramaskrik program.
-Programmet kan selvsagt brukes til å lage andre tilsvarende programoversikter også. Bare
-tilpass koden og malene etter ønske.
+Programmet kan selvsagt brukes til å lage andre tilsvarende programoversikter også. Bare tilpass koden og malene etter ønske.
## LISENS
-Copyright (C) 2018 [Harald Eilertsen](haraldei@anduin.net)
+Copyright (C) 2018,2025 [Eilertsens Kodeknekkeri](https://kodeknekkeriet.net)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/index.html.erb b/index.html.erb
index 62f31d2..53b1465 100644
--- a/index.html.erb
+++ b/index.html.erb
@@ -9,25 +9,30 @@
<body>
<h1><%= title %></h1>
<section id="introduction">
- <p>Dette er en annen visning av programmet for skrekkfilmfestivalen
- <a href="https://ramaskrik.no">Ramaskrik <%= year %></a>. Jeg laget det for
- meg selv, for å få en bedre oversikt over hvilke filmer som går hvor og når. Offisielt program finner du
- på <a href="https://ramaskrik.no/program/">Ramaskrik sine egne websider</a>. Denne siden ble generert
- <%= Date.today.strftime('%d.%m.%Y') %>, evt. endringer i programmet etter det er ikke tatt med.</p>
+ <details>
+ <summary>Informasjon</summary>
+ <p>Dette er en annen visning av programmet for skrekkfilmfestivalen
+ <a href="https://ramaskrik.no">Ramaskrik <%= year %></a>. Jeg laget det for
+ meg selv, for å få en bedre oversikt over hvilke filmer som går hvor og når. Offisielt program finner du
+ på <a href="https://ramaskrik.no/program/">Ramaskrik sine egne websider</a>. Denne siden ble generert
+ <%= Date.today.strftime('%d.%m.%Y') %>, evt. endringer i programmet etter det er ikke tatt med.</p>
- <p>Du kan merke hvilke filmer du ønsker å se ved å klikke/tappe på de. Siden vil huske hvilke filmer du
- har valgt, så du vil kunne bruke denne siden til å planlegge ruten din igjennom festivalen hvis du vil.
- (Ingen data sendes til websiden, hvilke filmer du har valgt vil kun lagres i din egen nettleser.)</p>
+ <p>Du kan merke hvilke filmer du ønsker å se ved å klikke/tappe på de. Siden vil huske hvilke filmer du
+ har valgt, så du vil kunne bruke denne siden til å planlegge ruten din igjennom festivalen hvis du vil.
+ (Ingen data sendes til websiden, hvilke filmer du har valgt vil kun lagres i din egen nettleser.)</p>
- <p>Programmet er også tilgjengelig som en kalenderfil.
- <a href="./program-ramaskrik-<%= year %>.ics">Klikk her</a>
- for å legge den til i kalenderen din.</p>
+ <p>Programmet er også tilgjengelig som en kalenderfil.
+ <a href="./program-ramaskrik-<%= year %>.ics">klikk her</a>
+ for å legge den til i kalenderen din.</p>
- <p>Har du spørsmål, ta kontakt med meg <a href="mailto:haraldei-ramaprogram@anduin.net">via epost</a>.</p>
+ <p>Har du spørsmål, ta kontakt med meg <a href="mailto:haraldei-ramaprogram@anduin.net">via epost</a>.</p>
+ </details>
</section>
<section id="events-list">
- <% eventlist.each do |date, events| %>
- <h2><%= date.strftime("%A %d.%m.%Y") %></h2>
+ <p>Last ned som <a href="./program-ramaskrik-<%= year %>.ics">kalenderfil</a></p>
+ <% eventlist.keys.sort.each do |date| %>
+ <% events = eventlist[date] %>
+ <h2><%= lang.weekday(date.wday).capitalize %> – <%= date.strftime("%d.%m.%Y") %></h2>
<div class="events" style="height: <%= 200 + (events.end_time - events.start_time) / 50 %>px; width: <%= 100 + (events.venues.length * 350) %>px;">
<% start_time = events.start_time.to_i %>
<% end_time = events.end_time.to_i %>
@@ -36,7 +41,7 @@
<h3>Kl.</h3>
<div class="time-column-inner">
<% (start_time..end_time).step(3600 / 4) do |time| %>
- <div class="timestamp" style="top: <%= (time - start_time).to_i / 50 - 5 %>px; height: 10px;">
+ <div class="timestamp" style="top: <%= (time - start_time).to_i / 50 %>px; height: 10px;">
<%= Time.at(time).strftime('%H:%M') %>
</div>
<% end %>
diff --git a/lib/events.rb b/lib/events.rb
index 24404f1..055b9c2 100644
--- a/lib/events.rb
+++ b/lib/events.rb
@@ -15,7 +15,7 @@ module Events
@duration = attrs['duration'].to_i
@title = attrs['title']
@venue = attrs['venue']
- @image_url = attrs['image'] unless attrs['image'].length < 10
+ @image_url = attrs['image'] unless attrs['image'].nil? or attrs['image'].length < 10
@info_link = attrs['info_link']
end
diff --git a/lib/i18n.rb b/lib/i18n.rb
new file mode 100644
index 0000000..0a2e461
--- /dev/null
+++ b/lib/i18n.rb
@@ -0,0 +1,8 @@
+class I18n
+
+ Weekday = %w{søndag mandag tirsdag onsdag torsdag fredag lørdag}
+
+ def weekday(day)
+ Weekday[day]
+ end
+end
diff --git a/ramaskrik-program.rb b/ramaskrik-program.rb
index cd22839..5e58620 100755
--- a/ramaskrik-program.rb
+++ b/ramaskrik-program.rb
@@ -22,8 +22,8 @@ require 'date'
require 'delegate'
require 'erb'
require 'events'
+require 'i18n'
require 'json'
-require 'scrapers/ramaskrik'
require 'nokogiri'
require 'open-uri'
require 'uri'
@@ -33,8 +33,8 @@ class EventDecorator < SimpleDelegator
attr_reader :height
def calc_offsets(time_offset)
- @offset = 5 + (start_time - time_offset).to_i / 50
- @height = 5 + duration / 50;
+ @offset = 5 + (start_time - time_offset).to_f / 50
+ @height = 5 + duration.to_f / 50;
start_time + duration
end
end
@@ -52,7 +52,7 @@ class SortedEventList
.sort{ |a,b| a.start_time - b.start_time }
.map{ |e| EventDecorator.new(e) }
- @start_time = @events.first.start_time - (@events.first.start_time.min * 60)
+ @start_time = @events.first.start_time # - (@events.first.start_time.min * 60)
@events.group_by{|e| e.venue}.each do |venue, events|
time_offset = start_time
@@ -82,6 +82,7 @@ def make_sorted_event_lists_by_date(events_by_date)
new_list
end
+lang = I18n::new
year = Date::today.year
title = "Ramaskrik #{year} - Program"
diff --git a/styles.css b/styles.css
index dd6071d..561983a 100644
--- a/styles.css
+++ b/styles.css
@@ -43,6 +43,7 @@ a:hover {
}
.timestamp {
position: absolute;
+ font-family: Helvetica, Arial, "Sans Serif";
font-size: 10px;
}
.event-item {