Přeskočit na obsah
DokumentaceKdyž se něco rozejde

Když se něco rozejde

Každé zařízení má vlastní úplnou knihovnu. Když se dvě takové knihovny potkají v jedné relaci, musí být jasné, kdo má pravdu.

Proč konflikty vznikají

Typické situace:

  • Píseň má někdo doma upravenou, jiný ji má v původním znění
  • Dva lidé přidali stejnou píseň nezávisle a mírně odlišně
  • Setlist se přejmenoval jen na jednom zařízení
  • Někdo byl při úpravách offline
Aplikace to neřeší automatickým slučováním. Řeší to předvídatelným pravidlem a v nejednoznačných případech se ptá.

Písně: vyhrává tvoje kopie

Když leader přepne na píseň, členovi se nepošle text k zobrazení — pošle se identifikace písně. Člen ji spáruje s vlastní knihovnou:

  1. Nejdřív podle syncId, pokud ho obě strany mají
  2. Pak podle klíče složeného z názvu, interpreta a varianty
Pokud píseň najde, otevře svoji vlastní verzi. Přijatá data ji nepřepíšou.
ℹ

Tomuhle pravidlu se říká „local wins". Znamená, že tvoje úpravy textu, tvoje transpozice ani tvoje poznámky nikdy nezmizí jen proto, že leader přepnul píseň.

Sdílená pole se přepíšou pouze tehdy, když si o to sám řekneš — buď explicitním sloučením s verzí od leadera, nebo importem jako nové kopie. Aplikace kromě toho hlásí zpět, jakou verzi písně máš, takže leader vidí, že u někoho je píseň starší.

Co se nikdy nepřepíše

Osobní pole v přenášeném balíčku vůbec nejsou — nemají jak být přepsána:

  • osobní poznámky
  • transpozice akordů i MusicXML
  • velikost písma a rychlosti autoscrollu
  • výchozí režim zobrazení a nastavení PDF
  • ruční anotace

Setlisty: rozhoduje uživatel

U setlistů se pravidlo „local wins" nepoužívá, protože setlist je pracovní dokument celé kapely. Když přijde setlist, který se shoduje s existujícím, zobrazí se dialog s volbou:

VolbaVýsledek
Nechat můjPřijatý setlist se zahodí
Vzít od leaderaLokální setlist se nahradí verzí od leadera
SloučitDialog ukáže, co má každá strana navíc, a spojí obojí do jednoho
Setlist má stabilní identitu, takže se dvě kopie téhož setlistu poznají, i když se mezitím přejmenovaly nebo rozešly obsahem. Kde identita nerozhodne, zeptá se aplikace jednou — a spojení si pak zapamatuje, takže se u téhož páru setlistů už neptá.

Bez tvého rozhodnutí se nezmění nic.

Chybějící obsah

Píseň, kterou v knihovně nemáš, se řeší nastavením Stahovat chybějící písně automaticky (výchozí: zapnuto):
  • Zapnuto — člen si píseň vyžádá sám a dostane její sdílená pole
  • Vypnuto — objeví se tlačítko, kterým si stažení vyžádáš ručně
Přílohy (PDF, MusicXML, obrázky) se nikdy nestahují automaticky — vždy je musíš vyžádat. Pokud je nemá ani leader, aplikace se zeptá ostatních členů; jejich zařízení si pak vyžádá svolení sdílet.

Výpadek spojení

Když spojení spadne, člen se pokouší připojit zpět podle rostoucího rozpisu:

text
1 s → 2 s → 4 s → 8 s → 16 s → 32 s → 60 s → 60 s → 60 s → 60 s

Po vyčerpání všech pokusů se opětovné připojování zastaví a zobrazí se chyba. Připojit se dá pak znovu ručně.

Další chování při výpadku:

  • Návrat z pozadí — po probuzení aplikace ověří vlastní IP adresu i stav spojení, protože telefon mohl mezitím přeskočit na jinou síť
  • Rozdělaný přenos — když se spojení ztratí uprostřed stahování přílohy, přenos se zruší a nezůstane po něm poškozený soubor
  • Vyhození leaderem — člen dostane jasnou zprávu a rozdělané přenosy se uklidí

Leader výpadek jednoho člena nijak nezasáhne. Hraje dál, člen ze seznamu zmizí po 25 sekundách ticha a po opětovném připojení se vrátí.

Chybové stavy

Synchronizace pracuje s pojmenovanými chybami, takže hláška ti řekne, co se pokazilo:

ChybaCo znamená
Nepodařilo se zjistit IP adresuTelefon není připojený k lokální síti. Připoj ho k WiFi nebo k hotspotu
Port je obsazenýSpojení, které relace potřebuje, drží jiná aplikace. Zavři ji, nebo telefon restartuj
Relace je plnáLeader už má 50 členů
Špatné hesloPIN relace nesouhlasí
Připojení selhaloLeader připojení nepřijal, nebo mezitím zmizel ze sítě. Zkus to znovu, třeba přes QR kód
Neplatná odpověď serveruNa zadané adrese neběží Eutepio — nejspíš je špatně opsaná
Leader se odpojilSpojení ukončil leader
Opětovné připojení selhaloVyčerpány všechny pokusy
Neplatný QR kódKód není párovací odkaz Eutepia

Známá omezení

ℹ
Když identita nerozhodne, páruje se setlist podle názvu a data akce. U setlistů, které vznikly nezávisle na dvou zařízeních, se proto aplikace zeptá, jestli jde o tentýž program — a odpověď si zapamatuje.

Dále:

  • Neexistuje historie verzí. Když sdílená pole přepíšeš verzí od leadera, předchozí obsah je pryč. Jedinou pojistkou je záloha.
  • Mazání je měkké, ale nešíří se. Smazaná píseň se u tebe označí jako smazaná, ale smazání se nesynchronizuje na ostatní zařízení.
  • Sloučení dvou různě upravených textů neexistuje. Buď si necháš svůj, nebo vezmeš cizí — nic mezi tím.