From eda188d4b00eba1babc7fe2cf61acf40be3d6ec8 Mon Sep 17 00:00:00 2001 From: afkarxyz Date: Mon, 13 Apr 2026 22:56:57 +0700 Subject: [PATCH] .ip detection --- app.go | 122 +++++ frontend/public/assets/flags/ad.svg | 150 ++++++ frontend/public/assets/flags/ae.svg | 6 + frontend/public/assets/flags/af.svg | 81 +++ frontend/public/assets/flags/ag.svg | 14 + frontend/public/assets/flags/ai.svg | 29 + frontend/public/assets/flags/al.svg | 5 + frontend/public/assets/flags/am.svg | 5 + frontend/public/assets/flags/ao.svg | 13 + frontend/public/assets/flags/aq.svg | 5 + frontend/public/assets/flags/ar.svg | 32 ++ frontend/public/assets/flags/arab.svg | 109 ++++ frontend/public/assets/flags/as.svg | 72 +++ frontend/public/assets/flags/asean.svg | 13 + frontend/public/assets/flags/at.svg | 4 + frontend/public/assets/flags/au.svg | 8 + frontend/public/assets/flags/aw.svg | 186 +++++++ frontend/public/assets/flags/ax.svg | 18 + frontend/public/assets/flags/az.svg | 8 + frontend/public/assets/flags/ba.svg | 12 + frontend/public/assets/flags/bb.svg | 6 + frontend/public/assets/flags/bd.svg | 4 + frontend/public/assets/flags/be.svg | 7 + frontend/public/assets/flags/bf.svg | 7 + frontend/public/assets/flags/bg.svg | 5 + frontend/public/assets/flags/bh.svg | 4 + frontend/public/assets/flags/bi.svg | 15 + frontend/public/assets/flags/bj.svg | 14 + frontend/public/assets/flags/bl.svg | 5 + frontend/public/assets/flags/bm.svg | 97 ++++ frontend/public/assets/flags/bn.svg | 36 ++ frontend/public/assets/flags/bo.svg | 673 +++++++++++++++++++++++ frontend/public/assets/flags/bq.svg | 5 + frontend/public/assets/flags/br.svg | 45 ++ frontend/public/assets/flags/bs.svg | 13 + frontend/public/assets/flags/bt.svg | 89 +++ frontend/public/assets/flags/bv.svg | 13 + frontend/public/assets/flags/bw.svg | 7 + frontend/public/assets/flags/by.svg | 18 + frontend/public/assets/flags/bz.svg | 145 +++++ frontend/public/assets/flags/ca.svg | 4 + frontend/public/assets/flags/cc.svg | 19 + frontend/public/assets/flags/cd.svg | 5 + frontend/public/assets/flags/cefta.svg | 13 + frontend/public/assets/flags/cf.svg | 15 + frontend/public/assets/flags/cg.svg | 12 + frontend/public/assets/flags/ch.svg | 9 + frontend/public/assets/flags/ci.svg | 7 + frontend/public/assets/flags/ck.svg | 9 + frontend/public/assets/flags/cl.svg | 13 + frontend/public/assets/flags/cm.svg | 15 + frontend/public/assets/flags/cn.svg | 11 + frontend/public/assets/flags/co.svg | 7 + frontend/public/assets/flags/cp.svg | 7 + frontend/public/assets/flags/cr.svg | 7 + frontend/public/assets/flags/cu.svg | 13 + frontend/public/assets/flags/cv.svg | 13 + frontend/public/assets/flags/cw.svg | 14 + frontend/public/assets/flags/cx.svg | 15 + frontend/public/assets/flags/cy.svg | 6 + frontend/public/assets/flags/cz.svg | 5 + frontend/public/assets/flags/de.svg | 5 + frontend/public/assets/flags/dg.svg | 130 +++++ frontend/public/assets/flags/dj.svg | 13 + frontend/public/assets/flags/dk.svg | 5 + frontend/public/assets/flags/dm.svg | 152 ++++++ frontend/public/assets/flags/do.svg | 121 +++++ frontend/public/assets/flags/dz.svg | 5 + frontend/public/assets/flags/eac.svg | 48 ++ frontend/public/assets/flags/ec.svg | 138 +++++ frontend/public/assets/flags/ee.svg | 5 + frontend/public/assets/flags/eg.svg | 38 ++ frontend/public/assets/flags/eh.svg | 16 + frontend/public/assets/flags/er.svg | 8 + frontend/public/assets/flags/es-ct.svg | 4 + frontend/public/assets/flags/es-ga.svg | 187 +++++++ frontend/public/assets/flags/es-pv.svg | 5 + frontend/public/assets/flags/es.svg | 544 +++++++++++++++++++ frontend/public/assets/flags/et.svg | 14 + frontend/public/assets/flags/eu.svg | 28 + frontend/public/assets/flags/fi.svg | 5 + frontend/public/assets/flags/fj.svg | 120 +++++ frontend/public/assets/flags/fk.svg | 90 ++++ frontend/public/assets/flags/fm.svg | 11 + frontend/public/assets/flags/fo.svg | 12 + frontend/public/assets/flags/fr.svg | 5 + frontend/public/assets/flags/ga.svg | 7 + frontend/public/assets/flags/gb-eng.svg | 5 + frontend/public/assets/flags/gb-nir.svg | 132 +++++ frontend/public/assets/flags/gb-sct.svg | 4 + frontend/public/assets/flags/gb-wls.svg | 9 + frontend/public/assets/flags/gb.svg | 7 + frontend/public/assets/flags/gd.svg | 27 + frontend/public/assets/flags/ge.svg | 6 + frontend/public/assets/flags/gf.svg | 5 + frontend/public/assets/flags/gg.svg | 9 + frontend/public/assets/flags/gh.svg | 6 + frontend/public/assets/flags/gi.svg | 32 ++ frontend/public/assets/flags/gl.svg | 4 + frontend/public/assets/flags/gm.svg | 14 + frontend/public/assets/flags/gn.svg | 7 + frontend/public/assets/flags/gp.svg | 5 + frontend/public/assets/flags/gq.svg | 23 + frontend/public/assets/flags/gr.svg | 16 + frontend/public/assets/flags/gs.svg | 133 +++++ frontend/public/assets/flags/gt.svg | 204 +++++++ frontend/public/assets/flags/gu.svg | 19 + frontend/public/assets/flags/gw.svg | 13 + frontend/public/assets/flags/gy.svg | 9 + frontend/public/assets/flags/hk.svg | 8 + frontend/public/assets/flags/hm.svg | 8 + frontend/public/assets/flags/hn.svg | 18 + frontend/public/assets/flags/hr.svg | 58 ++ frontend/public/assets/flags/ht.svg | 116 ++++ frontend/public/assets/flags/hu.svg | 7 + frontend/public/assets/flags/ic.svg | 7 + frontend/public/assets/flags/id.svg | 4 + frontend/public/assets/flags/ie.svg | 7 + frontend/public/assets/flags/il.svg | 14 + frontend/public/assets/flags/im.svg | 36 ++ frontend/public/assets/flags/in.svg | 25 + frontend/public/assets/flags/io.svg | 130 +++++ frontend/public/assets/flags/iq.svg | 10 + frontend/public/assets/flags/ir.svg | 219 ++++++++ frontend/public/assets/flags/is.svg | 12 + frontend/public/assets/flags/it.svg | 7 + frontend/public/assets/flags/je.svg | 62 +++ frontend/public/assets/flags/jm.svg | 8 + frontend/public/assets/flags/jo.svg | 16 + frontend/public/assets/flags/jp.svg | 11 + frontend/public/assets/flags/ke.svg | 23 + frontend/public/assets/flags/kg.svg | 4 + frontend/public/assets/flags/kh.svg | 61 +++ frontend/public/assets/flags/ki.svg | 36 ++ frontend/public/assets/flags/km.svg | 16 + frontend/public/assets/flags/kn.svg | 14 + frontend/public/assets/flags/kp.svg | 15 + frontend/public/assets/flags/kr.svg | 24 + frontend/public/assets/flags/kw.svg | 13 + frontend/public/assets/flags/ky.svg | 103 ++++ frontend/public/assets/flags/kz.svg | 36 ++ frontend/public/assets/flags/la.svg | 12 + frontend/public/assets/flags/lb.svg | 15 + frontend/public/assets/flags/lc.svg | 8 + frontend/public/assets/flags/li.svg | 43 ++ frontend/public/assets/flags/lk.svg | 22 + frontend/public/assets/flags/lr.svg | 14 + frontend/public/assets/flags/ls.svg | 8 + frontend/public/assets/flags/lt.svg | 7 + frontend/public/assets/flags/lu.svg | 5 + frontend/public/assets/flags/lv.svg | 7 + frontend/public/assets/flags/ly.svg | 13 + frontend/public/assets/flags/ma.svg | 4 + frontend/public/assets/flags/mc.svg | 6 + frontend/public/assets/flags/md.svg | 70 +++ frontend/public/assets/flags/me.svg | 116 ++++ frontend/public/assets/flags/mf.svg | 5 + frontend/public/assets/flags/mg.svg | 7 + frontend/public/assets/flags/mh.svg | 7 + frontend/public/assets/flags/mk.svg | 5 + frontend/public/assets/flags/ml.svg | 7 + frontend/public/assets/flags/mm.svg | 12 + frontend/public/assets/flags/mn.svg | 14 + frontend/public/assets/flags/mo.svg | 9 + frontend/public/assets/flags/mp.svg | 86 +++ frontend/public/assets/flags/mq.svg | 5 + frontend/public/assets/flags/mr.svg | 6 + frontend/public/assets/flags/ms.svg | 29 + frontend/public/assets/flags/mt.svg | 58 ++ frontend/public/assets/flags/mu.svg | 8 + frontend/public/assets/flags/mv.svg | 6 + frontend/public/assets/flags/mw.svg | 10 + frontend/public/assets/flags/mx.svg | 382 +++++++++++++ frontend/public/assets/flags/my.svg | 26 + frontend/public/assets/flags/mz.svg | 21 + frontend/public/assets/flags/na.svg | 16 + frontend/public/assets/flags/nc.svg | 13 + frontend/public/assets/flags/ne.svg | 6 + frontend/public/assets/flags/nf.svg | 9 + frontend/public/assets/flags/ng.svg | 6 + frontend/public/assets/flags/ni.svg | 129 +++++ frontend/public/assets/flags/nl.svg | 5 + frontend/public/assets/flags/no.svg | 7 + frontend/public/assets/flags/np.svg | 13 + frontend/public/assets/flags/nr.svg | 12 + frontend/public/assets/flags/nu.svg | 10 + frontend/public/assets/flags/nz.svg | 36 ++ frontend/public/assets/flags/om.svg | 115 ++++ frontend/public/assets/flags/pa.svg | 7 + frontend/public/assets/flags/pc.svg | 33 ++ frontend/public/assets/flags/pe.svg | 4 + frontend/public/assets/flags/pf.svg | 19 + frontend/public/assets/flags/pg.svg | 9 + frontend/public/assets/flags/ph.svg | 6 + frontend/public/assets/flags/pk.svg | 15 + frontend/public/assets/flags/pl.svg | 6 + frontend/public/assets/flags/pm.svg | 5 + frontend/public/assets/flags/pn.svg | 53 ++ frontend/public/assets/flags/pr.svg | 13 + frontend/public/assets/flags/ps.svg | 6 + frontend/public/assets/flags/pt.svg | 57 ++ frontend/public/assets/flags/pw.svg | 11 + frontend/public/assets/flags/py.svg | 157 ++++++ frontend/public/assets/flags/qa.svg | 4 + frontend/public/assets/flags/re.svg | 5 + frontend/public/assets/flags/ro.svg | 7 + frontend/public/assets/flags/rs.svg | 292 ++++++++++ frontend/public/assets/flags/ru.svg | 5 + frontend/public/assets/flags/rw.svg | 13 + frontend/public/assets/flags/sa.svg | 25 + frontend/public/assets/flags/sb.svg | 13 + frontend/public/assets/flags/sc.svg | 7 + frontend/public/assets/flags/sd.svg | 13 + frontend/public/assets/flags/se.svg | 4 + frontend/public/assets/flags/sg.svg | 13 + frontend/public/assets/flags/sh-ac.svg | 689 ++++++++++++++++++++++++ frontend/public/assets/flags/sh-hl.svg | 164 ++++++ frontend/public/assets/flags/sh-ta.svg | 76 +++ frontend/public/assets/flags/sh.svg | 7 + frontend/public/assets/flags/si.svg | 18 + frontend/public/assets/flags/sj.svg | 7 + frontend/public/assets/flags/sk.svg | 9 + frontend/public/assets/flags/sl.svg | 7 + frontend/public/assets/flags/sm.svg | 75 +++ frontend/public/assets/flags/sn.svg | 8 + frontend/public/assets/flags/so.svg | 11 + frontend/public/assets/flags/sr.svg | 6 + frontend/public/assets/flags/ss.svg | 8 + frontend/public/assets/flags/st.svg | 16 + frontend/public/assets/flags/sv.svg | 593 ++++++++++++++++++++ frontend/public/assets/flags/sx.svg | 56 ++ frontend/public/assets/flags/sy.svg | 6 + frontend/public/assets/flags/sz.svg | 34 ++ frontend/public/assets/flags/tc.svg | 50 ++ frontend/public/assets/flags/td.svg | 7 + frontend/public/assets/flags/tf.svg | 15 + frontend/public/assets/flags/tg.svg | 14 + frontend/public/assets/flags/th.svg | 7 + frontend/public/assets/flags/tj.svg | 22 + frontend/public/assets/flags/tk.svg | 5 + frontend/public/assets/flags/tl.svg | 13 + frontend/public/assets/flags/tm.svg | 204 +++++++ frontend/public/assets/flags/tn.svg | 4 + frontend/public/assets/flags/to.svg | 10 + frontend/public/assets/flags/tr.svg | 8 + frontend/public/assets/flags/tt.svg | 5 + frontend/public/assets/flags/tv.svg | 9 + frontend/public/assets/flags/tw.svg | 34 ++ frontend/public/assets/flags/tz.svg | 13 + frontend/public/assets/flags/ua.svg | 6 + frontend/public/assets/flags/ug.svg | 30 ++ frontend/public/assets/flags/um.svg | 9 + frontend/public/assets/flags/un.svg | 16 + frontend/public/assets/flags/us.svg | 9 + frontend/public/assets/flags/uy.svg | 28 + frontend/public/assets/flags/uz.svg | 30 ++ frontend/public/assets/flags/va.svg | 190 +++++++ frontend/public/assets/flags/vc.svg | 8 + frontend/public/assets/flags/ve.svg | 26 + frontend/public/assets/flags/vg.svg | 59 ++ frontend/public/assets/flags/vi.svg | 28 + frontend/public/assets/flags/vn.svg | 11 + frontend/public/assets/flags/vu.svg | 21 + frontend/public/assets/flags/wf.svg | 5 + frontend/public/assets/flags/ws.svg | 7 + frontend/public/assets/flags/xk.svg | 5 + frontend/public/assets/flags/xx.svg | 4 + frontend/public/assets/flags/ye.svg | 7 + frontend/public/assets/flags/yt.svg | 5 + frontend/public/assets/flags/za.svg | 17 + frontend/public/assets/flags/zm.svg | 27 + frontend/public/assets/flags/zw.svg | 21 + frontend/src/components/TitleBar.tsx | 106 +++- frontend/src/lib/api.ts | 8 +- frontend/src/types/api.ts | 6 + frontend/wailsjs/go/main/App.d.ts | 142 +++++ frontend/wailsjs/go/main/App.js | 279 ++++++++++ 277 files changed, 11400 insertions(+), 4 deletions(-) create mode 100644 frontend/public/assets/flags/ad.svg create mode 100644 frontend/public/assets/flags/ae.svg create mode 100644 frontend/public/assets/flags/af.svg create mode 100644 frontend/public/assets/flags/ag.svg create mode 100644 frontend/public/assets/flags/ai.svg create mode 100644 frontend/public/assets/flags/al.svg create mode 100644 frontend/public/assets/flags/am.svg create mode 100644 frontend/public/assets/flags/ao.svg create mode 100644 frontend/public/assets/flags/aq.svg create mode 100644 frontend/public/assets/flags/ar.svg create mode 100644 frontend/public/assets/flags/arab.svg create mode 100644 frontend/public/assets/flags/as.svg create mode 100644 frontend/public/assets/flags/asean.svg create mode 100644 frontend/public/assets/flags/at.svg create mode 100644 frontend/public/assets/flags/au.svg create mode 100644 frontend/public/assets/flags/aw.svg create mode 100644 frontend/public/assets/flags/ax.svg create mode 100644 frontend/public/assets/flags/az.svg create mode 100644 frontend/public/assets/flags/ba.svg create mode 100644 frontend/public/assets/flags/bb.svg create mode 100644 frontend/public/assets/flags/bd.svg create mode 100644 frontend/public/assets/flags/be.svg create mode 100644 frontend/public/assets/flags/bf.svg create mode 100644 frontend/public/assets/flags/bg.svg create mode 100644 frontend/public/assets/flags/bh.svg create mode 100644 frontend/public/assets/flags/bi.svg create mode 100644 frontend/public/assets/flags/bj.svg create mode 100644 frontend/public/assets/flags/bl.svg create mode 100644 frontend/public/assets/flags/bm.svg create mode 100644 frontend/public/assets/flags/bn.svg create mode 100644 frontend/public/assets/flags/bo.svg create mode 100644 frontend/public/assets/flags/bq.svg create mode 100644 frontend/public/assets/flags/br.svg create mode 100644 frontend/public/assets/flags/bs.svg create mode 100644 frontend/public/assets/flags/bt.svg create mode 100644 frontend/public/assets/flags/bv.svg create mode 100644 frontend/public/assets/flags/bw.svg create mode 100644 frontend/public/assets/flags/by.svg create mode 100644 frontend/public/assets/flags/bz.svg create mode 100644 frontend/public/assets/flags/ca.svg create mode 100644 frontend/public/assets/flags/cc.svg create mode 100644 frontend/public/assets/flags/cd.svg create mode 100644 frontend/public/assets/flags/cefta.svg create mode 100644 frontend/public/assets/flags/cf.svg create mode 100644 frontend/public/assets/flags/cg.svg create mode 100644 frontend/public/assets/flags/ch.svg create mode 100644 frontend/public/assets/flags/ci.svg create mode 100644 frontend/public/assets/flags/ck.svg create mode 100644 frontend/public/assets/flags/cl.svg create mode 100644 frontend/public/assets/flags/cm.svg create mode 100644 frontend/public/assets/flags/cn.svg create mode 100644 frontend/public/assets/flags/co.svg create mode 100644 frontend/public/assets/flags/cp.svg create mode 100644 frontend/public/assets/flags/cr.svg create mode 100644 frontend/public/assets/flags/cu.svg create mode 100644 frontend/public/assets/flags/cv.svg create mode 100644 frontend/public/assets/flags/cw.svg create mode 100644 frontend/public/assets/flags/cx.svg create mode 100644 frontend/public/assets/flags/cy.svg create mode 100644 frontend/public/assets/flags/cz.svg create mode 100644 frontend/public/assets/flags/de.svg create mode 100644 frontend/public/assets/flags/dg.svg create mode 100644 frontend/public/assets/flags/dj.svg create mode 100644 frontend/public/assets/flags/dk.svg create mode 100644 frontend/public/assets/flags/dm.svg create mode 100644 frontend/public/assets/flags/do.svg create mode 100644 frontend/public/assets/flags/dz.svg create mode 100644 frontend/public/assets/flags/eac.svg create mode 100644 frontend/public/assets/flags/ec.svg create mode 100644 frontend/public/assets/flags/ee.svg create mode 100644 frontend/public/assets/flags/eg.svg create mode 100644 frontend/public/assets/flags/eh.svg create mode 100644 frontend/public/assets/flags/er.svg create mode 100644 frontend/public/assets/flags/es-ct.svg create mode 100644 frontend/public/assets/flags/es-ga.svg create mode 100644 frontend/public/assets/flags/es-pv.svg create mode 100644 frontend/public/assets/flags/es.svg create mode 100644 frontend/public/assets/flags/et.svg create mode 100644 frontend/public/assets/flags/eu.svg create mode 100644 frontend/public/assets/flags/fi.svg create mode 100644 frontend/public/assets/flags/fj.svg create mode 100644 frontend/public/assets/flags/fk.svg create mode 100644 frontend/public/assets/flags/fm.svg create mode 100644 frontend/public/assets/flags/fo.svg create mode 100644 frontend/public/assets/flags/fr.svg create mode 100644 frontend/public/assets/flags/ga.svg create mode 100644 frontend/public/assets/flags/gb-eng.svg create mode 100644 frontend/public/assets/flags/gb-nir.svg create mode 100644 frontend/public/assets/flags/gb-sct.svg create mode 100644 frontend/public/assets/flags/gb-wls.svg create mode 100644 frontend/public/assets/flags/gb.svg create mode 100644 frontend/public/assets/flags/gd.svg create mode 100644 frontend/public/assets/flags/ge.svg create mode 100644 frontend/public/assets/flags/gf.svg create mode 100644 frontend/public/assets/flags/gg.svg create mode 100644 frontend/public/assets/flags/gh.svg create mode 100644 frontend/public/assets/flags/gi.svg create mode 100644 frontend/public/assets/flags/gl.svg create mode 100644 frontend/public/assets/flags/gm.svg create mode 100644 frontend/public/assets/flags/gn.svg create mode 100644 frontend/public/assets/flags/gp.svg create mode 100644 frontend/public/assets/flags/gq.svg create mode 100644 frontend/public/assets/flags/gr.svg create mode 100644 frontend/public/assets/flags/gs.svg create mode 100644 frontend/public/assets/flags/gt.svg create mode 100644 frontend/public/assets/flags/gu.svg create mode 100644 frontend/public/assets/flags/gw.svg create mode 100644 frontend/public/assets/flags/gy.svg create mode 100644 frontend/public/assets/flags/hk.svg create mode 100644 frontend/public/assets/flags/hm.svg create mode 100644 frontend/public/assets/flags/hn.svg create mode 100644 frontend/public/assets/flags/hr.svg create mode 100644 frontend/public/assets/flags/ht.svg create mode 100644 frontend/public/assets/flags/hu.svg create mode 100644 frontend/public/assets/flags/ic.svg create mode 100644 frontend/public/assets/flags/id.svg create mode 100644 frontend/public/assets/flags/ie.svg create mode 100644 frontend/public/assets/flags/il.svg create mode 100644 frontend/public/assets/flags/im.svg create mode 100644 frontend/public/assets/flags/in.svg create mode 100644 frontend/public/assets/flags/io.svg create mode 100644 frontend/public/assets/flags/iq.svg create mode 100644 frontend/public/assets/flags/ir.svg create mode 100644 frontend/public/assets/flags/is.svg create mode 100644 frontend/public/assets/flags/it.svg create mode 100644 frontend/public/assets/flags/je.svg create mode 100644 frontend/public/assets/flags/jm.svg create mode 100644 frontend/public/assets/flags/jo.svg create mode 100644 frontend/public/assets/flags/jp.svg create mode 100644 frontend/public/assets/flags/ke.svg create mode 100644 frontend/public/assets/flags/kg.svg create mode 100644 frontend/public/assets/flags/kh.svg create mode 100644 frontend/public/assets/flags/ki.svg create mode 100644 frontend/public/assets/flags/km.svg create mode 100644 frontend/public/assets/flags/kn.svg create mode 100644 frontend/public/assets/flags/kp.svg create mode 100644 frontend/public/assets/flags/kr.svg create mode 100644 frontend/public/assets/flags/kw.svg create mode 100644 frontend/public/assets/flags/ky.svg create mode 100644 frontend/public/assets/flags/kz.svg create mode 100644 frontend/public/assets/flags/la.svg create mode 100644 frontend/public/assets/flags/lb.svg create mode 100644 frontend/public/assets/flags/lc.svg create mode 100644 frontend/public/assets/flags/li.svg create mode 100644 frontend/public/assets/flags/lk.svg create mode 100644 frontend/public/assets/flags/lr.svg create mode 100644 frontend/public/assets/flags/ls.svg create mode 100644 frontend/public/assets/flags/lt.svg create mode 100644 frontend/public/assets/flags/lu.svg create mode 100644 frontend/public/assets/flags/lv.svg create mode 100644 frontend/public/assets/flags/ly.svg create mode 100644 frontend/public/assets/flags/ma.svg create mode 100644 frontend/public/assets/flags/mc.svg create mode 100644 frontend/public/assets/flags/md.svg create mode 100644 frontend/public/assets/flags/me.svg create mode 100644 frontend/public/assets/flags/mf.svg create mode 100644 frontend/public/assets/flags/mg.svg create mode 100644 frontend/public/assets/flags/mh.svg create mode 100644 frontend/public/assets/flags/mk.svg create mode 100644 frontend/public/assets/flags/ml.svg create mode 100644 frontend/public/assets/flags/mm.svg create mode 100644 frontend/public/assets/flags/mn.svg create mode 100644 frontend/public/assets/flags/mo.svg create mode 100644 frontend/public/assets/flags/mp.svg create mode 100644 frontend/public/assets/flags/mq.svg create mode 100644 frontend/public/assets/flags/mr.svg create mode 100644 frontend/public/assets/flags/ms.svg create mode 100644 frontend/public/assets/flags/mt.svg create mode 100644 frontend/public/assets/flags/mu.svg create mode 100644 frontend/public/assets/flags/mv.svg create mode 100644 frontend/public/assets/flags/mw.svg create mode 100644 frontend/public/assets/flags/mx.svg create mode 100644 frontend/public/assets/flags/my.svg create mode 100644 frontend/public/assets/flags/mz.svg create mode 100644 frontend/public/assets/flags/na.svg create mode 100644 frontend/public/assets/flags/nc.svg create mode 100644 frontend/public/assets/flags/ne.svg create mode 100644 frontend/public/assets/flags/nf.svg create mode 100644 frontend/public/assets/flags/ng.svg create mode 100644 frontend/public/assets/flags/ni.svg create mode 100644 frontend/public/assets/flags/nl.svg create mode 100644 frontend/public/assets/flags/no.svg create mode 100644 frontend/public/assets/flags/np.svg create mode 100644 frontend/public/assets/flags/nr.svg create mode 100644 frontend/public/assets/flags/nu.svg create mode 100644 frontend/public/assets/flags/nz.svg create mode 100644 frontend/public/assets/flags/om.svg create mode 100644 frontend/public/assets/flags/pa.svg create mode 100644 frontend/public/assets/flags/pc.svg create mode 100644 frontend/public/assets/flags/pe.svg create mode 100644 frontend/public/assets/flags/pf.svg create mode 100644 frontend/public/assets/flags/pg.svg create mode 100644 frontend/public/assets/flags/ph.svg create mode 100644 frontend/public/assets/flags/pk.svg create mode 100644 frontend/public/assets/flags/pl.svg create mode 100644 frontend/public/assets/flags/pm.svg create mode 100644 frontend/public/assets/flags/pn.svg create mode 100644 frontend/public/assets/flags/pr.svg create mode 100644 frontend/public/assets/flags/ps.svg create mode 100644 frontend/public/assets/flags/pt.svg create mode 100644 frontend/public/assets/flags/pw.svg create mode 100644 frontend/public/assets/flags/py.svg create mode 100644 frontend/public/assets/flags/qa.svg create mode 100644 frontend/public/assets/flags/re.svg create mode 100644 frontend/public/assets/flags/ro.svg create mode 100644 frontend/public/assets/flags/rs.svg create mode 100644 frontend/public/assets/flags/ru.svg create mode 100644 frontend/public/assets/flags/rw.svg create mode 100644 frontend/public/assets/flags/sa.svg create mode 100644 frontend/public/assets/flags/sb.svg create mode 100644 frontend/public/assets/flags/sc.svg create mode 100644 frontend/public/assets/flags/sd.svg create mode 100644 frontend/public/assets/flags/se.svg create mode 100644 frontend/public/assets/flags/sg.svg create mode 100644 frontend/public/assets/flags/sh-ac.svg create mode 100644 frontend/public/assets/flags/sh-hl.svg create mode 100644 frontend/public/assets/flags/sh-ta.svg create mode 100644 frontend/public/assets/flags/sh.svg create mode 100644 frontend/public/assets/flags/si.svg create mode 100644 frontend/public/assets/flags/sj.svg create mode 100644 frontend/public/assets/flags/sk.svg create mode 100644 frontend/public/assets/flags/sl.svg create mode 100644 frontend/public/assets/flags/sm.svg create mode 100644 frontend/public/assets/flags/sn.svg create mode 100644 frontend/public/assets/flags/so.svg create mode 100644 frontend/public/assets/flags/sr.svg create mode 100644 frontend/public/assets/flags/ss.svg create mode 100644 frontend/public/assets/flags/st.svg create mode 100644 frontend/public/assets/flags/sv.svg create mode 100644 frontend/public/assets/flags/sx.svg create mode 100644 frontend/public/assets/flags/sy.svg create mode 100644 frontend/public/assets/flags/sz.svg create mode 100644 frontend/public/assets/flags/tc.svg create mode 100644 frontend/public/assets/flags/td.svg create mode 100644 frontend/public/assets/flags/tf.svg create mode 100644 frontend/public/assets/flags/tg.svg create mode 100644 frontend/public/assets/flags/th.svg create mode 100644 frontend/public/assets/flags/tj.svg create mode 100644 frontend/public/assets/flags/tk.svg create mode 100644 frontend/public/assets/flags/tl.svg create mode 100644 frontend/public/assets/flags/tm.svg create mode 100644 frontend/public/assets/flags/tn.svg create mode 100644 frontend/public/assets/flags/to.svg create mode 100644 frontend/public/assets/flags/tr.svg create mode 100644 frontend/public/assets/flags/tt.svg create mode 100644 frontend/public/assets/flags/tv.svg create mode 100644 frontend/public/assets/flags/tw.svg create mode 100644 frontend/public/assets/flags/tz.svg create mode 100644 frontend/public/assets/flags/ua.svg create mode 100644 frontend/public/assets/flags/ug.svg create mode 100644 frontend/public/assets/flags/um.svg create mode 100644 frontend/public/assets/flags/un.svg create mode 100644 frontend/public/assets/flags/us.svg create mode 100644 frontend/public/assets/flags/uy.svg create mode 100644 frontend/public/assets/flags/uz.svg create mode 100644 frontend/public/assets/flags/va.svg create mode 100644 frontend/public/assets/flags/vc.svg create mode 100644 frontend/public/assets/flags/ve.svg create mode 100644 frontend/public/assets/flags/vg.svg create mode 100644 frontend/public/assets/flags/vi.svg create mode 100644 frontend/public/assets/flags/vn.svg create mode 100644 frontend/public/assets/flags/vu.svg create mode 100644 frontend/public/assets/flags/wf.svg create mode 100644 frontend/public/assets/flags/ws.svg create mode 100644 frontend/public/assets/flags/xk.svg create mode 100644 frontend/public/assets/flags/xx.svg create mode 100644 frontend/public/assets/flags/ye.svg create mode 100644 frontend/public/assets/flags/yt.svg create mode 100644 frontend/public/assets/flags/za.svg create mode 100644 frontend/public/assets/flags/zm.svg create mode 100644 frontend/public/assets/flags/zw.svg create mode 100644 frontend/wailsjs/go/main/App.d.ts create mode 100644 frontend/wailsjs/go/main/App.js diff --git a/app.go b/app.go index 0282351..030de2a 100644 --- a/app.go +++ b/app.go @@ -25,6 +25,13 @@ type App struct { ctx context.Context } +type CurrentIPInfo struct { + IP string `json:"ip"` + Country string `json:"country"` + CountryCode string `json:"country_code,omitempty"` + Source string `json:"source,omitempty"` +} + const checkOperationTimeout = 10 * time.Second func NewApp() *App { @@ -92,6 +99,121 @@ func isStreamingURL(raw string) bool { return (parsed.Scheme == "http" || parsed.Scheme == "https") && parsed.Host != "" } +func previewResponseBody(body []byte, maxLen int) string { + preview := strings.TrimSpace(string(body)) + if maxLen > 0 && len(preview) > maxLen { + return preview[:maxLen] + "..." + } + return preview +} + +func fetchCurrentIPInfo() (CurrentIPInfo, error) { + type ipwhoisResponse struct { + Success bool `json:"success"` + IP string `json:"ip"` + Country string `json:"country"` + CountryCode string `json:"country_code"` + Message string `json:"message"` + } + type ipapiResponse struct { + IP string `json:"ip"` + Country string `json:"country_name"` + CountryCode string `json:"country_code"` + Error bool `json:"error"` + Reason string `json:"reason"` + } + + client := &http.Client{Timeout: 8 * time.Second} + tryFetch := func(source, reqURL string, parse func(body []byte) (CurrentIPInfo, error)) (CurrentIPInfo, error) { + req, err := http.NewRequest(http.MethodGet, reqURL, nil) + if err != nil { + return CurrentIPInfo{}, err + } + req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36") + req.Header.Set("Accept", "application/json") + + resp, err := client.Do(req) + if err != nil { + return CurrentIPInfo{}, err + } + defer resp.Body.Close() + + body, err := io.ReadAll(resp.Body) + if err != nil { + return CurrentIPInfo{}, err + } + if resp.StatusCode != http.StatusOK { + return CurrentIPInfo{}, fmt.Errorf("%s returned status %d: %s", source, resp.StatusCode, previewResponseBody(body, 200)) + } + + info, err := parse(body) + if err != nil { + return CurrentIPInfo{}, err + } + info.Source = source + return info, nil + } + + info, err := tryFetch("ipwho.is", "https://ipwho.is/", func(body []byte) (CurrentIPInfo, error) { + var payload ipwhoisResponse + if err := json.Unmarshal(body, &payload); err != nil { + return CurrentIPInfo{}, err + } + if !payload.Success { + return CurrentIPInfo{}, fmt.Errorf("ipwho.is lookup failed: %s", strings.TrimSpace(payload.Message)) + } + if strings.TrimSpace(payload.IP) == "" || strings.TrimSpace(payload.Country) == "" { + return CurrentIPInfo{}, fmt.Errorf("ipwho.is returned incomplete IP data") + } + return CurrentIPInfo{ + IP: strings.TrimSpace(payload.IP), + Country: strings.TrimSpace(payload.Country), + CountryCode: strings.TrimSpace(payload.CountryCode), + }, nil + }) + if err == nil { + return info, nil + } + firstErr := err + + info, err = tryFetch("ipapi.co", "https://ipapi.co/json/", func(body []byte) (CurrentIPInfo, error) { + var payload ipapiResponse + if err := json.Unmarshal(body, &payload); err != nil { + return CurrentIPInfo{}, err + } + if payload.Error { + return CurrentIPInfo{}, fmt.Errorf("ipapi.co lookup failed: %s", strings.TrimSpace(payload.Reason)) + } + if strings.TrimSpace(payload.IP) == "" || strings.TrimSpace(payload.Country) == "" { + return CurrentIPInfo{}, fmt.Errorf("ipapi.co returned incomplete IP data") + } + return CurrentIPInfo{ + IP: strings.TrimSpace(payload.IP), + Country: strings.TrimSpace(payload.Country), + CountryCode: strings.TrimSpace(payload.CountryCode), + }, nil + }) + if err == nil { + return info, nil + } + + return CurrentIPInfo{}, fmt.Errorf("failed to detect public IP: %v; fallback failed: %v", firstErr, err) +} + +func (a *App) GetCurrentIPInfo() (string, error) { + info, err := fetchCurrentIPInfo() + if err != nil { + return "", err + } + + payload, err := json.Marshal(info) + if err != nil { + return "", err + } + + return string(payload), nil +} + func (a *App) getFirstArtist(artistString string) string { if artistString == "" { return "" diff --git a/frontend/public/assets/flags/ad.svg b/frontend/public/assets/flags/ad.svg new file mode 100644 index 0000000..199ff19 --- /dev/null +++ b/frontend/public/assets/flags/ad.svg @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/ae.svg b/frontend/public/assets/flags/ae.svg new file mode 100644 index 0000000..651ac85 --- /dev/null +++ b/frontend/public/assets/flags/ae.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/frontend/public/assets/flags/af.svg b/frontend/public/assets/flags/af.svg new file mode 100644 index 0000000..4dbe455 --- /dev/null +++ b/frontend/public/assets/flags/af.svg @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/ag.svg b/frontend/public/assets/flags/ag.svg new file mode 100644 index 0000000..243c3d8 --- /dev/null +++ b/frontend/public/assets/flags/ag.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/ai.svg b/frontend/public/assets/flags/ai.svg new file mode 100644 index 0000000..9c2ea33 --- /dev/null +++ b/frontend/public/assets/flags/ai.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/al.svg b/frontend/public/assets/flags/al.svg new file mode 100644 index 0000000..e85d95f --- /dev/null +++ b/frontend/public/assets/flags/al.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/public/assets/flags/am.svg b/frontend/public/assets/flags/am.svg new file mode 100644 index 0000000..99fa4dc --- /dev/null +++ b/frontend/public/assets/flags/am.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/public/assets/flags/ao.svg b/frontend/public/assets/flags/ao.svg new file mode 100644 index 0000000..b73b1ec --- /dev/null +++ b/frontend/public/assets/flags/ao.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/aq.svg b/frontend/public/assets/flags/aq.svg new file mode 100644 index 0000000..c7e3536 --- /dev/null +++ b/frontend/public/assets/flags/aq.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/public/assets/flags/ar.svg b/frontend/public/assets/flags/ar.svg new file mode 100644 index 0000000..c753da1 --- /dev/null +++ b/frontend/public/assets/flags/ar.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/arab.svg b/frontend/public/assets/flags/arab.svg new file mode 100644 index 0000000..9ef079f --- /dev/null +++ b/frontend/public/assets/flags/arab.svg @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/as.svg b/frontend/public/assets/flags/as.svg new file mode 100644 index 0000000..82459de --- /dev/null +++ b/frontend/public/assets/flags/as.svg @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/asean.svg b/frontend/public/assets/flags/asean.svg new file mode 100644 index 0000000..189ae02 --- /dev/null +++ b/frontend/public/assets/flags/asean.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/at.svg b/frontend/public/assets/flags/at.svg new file mode 100644 index 0000000..9d2775c --- /dev/null +++ b/frontend/public/assets/flags/at.svg @@ -0,0 +1,4 @@ + + + + diff --git a/frontend/public/assets/flags/au.svg b/frontend/public/assets/flags/au.svg new file mode 100644 index 0000000..96e8076 --- /dev/null +++ b/frontend/public/assets/flags/au.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/frontend/public/assets/flags/aw.svg b/frontend/public/assets/flags/aw.svg new file mode 100644 index 0000000..413b7c4 --- /dev/null +++ b/frontend/public/assets/flags/aw.svg @@ -0,0 +1,186 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/ax.svg b/frontend/public/assets/flags/ax.svg new file mode 100644 index 0000000..0584d71 --- /dev/null +++ b/frontend/public/assets/flags/ax.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/az.svg b/frontend/public/assets/flags/az.svg new file mode 100644 index 0000000..3557522 --- /dev/null +++ b/frontend/public/assets/flags/az.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/frontend/public/assets/flags/ba.svg b/frontend/public/assets/flags/ba.svg new file mode 100644 index 0000000..93bd9cf --- /dev/null +++ b/frontend/public/assets/flags/ba.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/bb.svg b/frontend/public/assets/flags/bb.svg new file mode 100644 index 0000000..cecd5cc --- /dev/null +++ b/frontend/public/assets/flags/bb.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/frontend/public/assets/flags/bd.svg b/frontend/public/assets/flags/bd.svg new file mode 100644 index 0000000..16b794d --- /dev/null +++ b/frontend/public/assets/flags/bd.svg @@ -0,0 +1,4 @@ + + + + diff --git a/frontend/public/assets/flags/be.svg b/frontend/public/assets/flags/be.svg new file mode 100644 index 0000000..ac706a0 --- /dev/null +++ b/frontend/public/assets/flags/be.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/public/assets/flags/bf.svg b/frontend/public/assets/flags/bf.svg new file mode 100644 index 0000000..4713822 --- /dev/null +++ b/frontend/public/assets/flags/bf.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/public/assets/flags/bg.svg b/frontend/public/assets/flags/bg.svg new file mode 100644 index 0000000..af2d0d0 --- /dev/null +++ b/frontend/public/assets/flags/bg.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/public/assets/flags/bh.svg b/frontend/public/assets/flags/bh.svg new file mode 100644 index 0000000..7a2ea54 --- /dev/null +++ b/frontend/public/assets/flags/bh.svg @@ -0,0 +1,4 @@ + + + + diff --git a/frontend/public/assets/flags/bi.svg b/frontend/public/assets/flags/bi.svg new file mode 100644 index 0000000..a4434a9 --- /dev/null +++ b/frontend/public/assets/flags/bi.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/bj.svg b/frontend/public/assets/flags/bj.svg new file mode 100644 index 0000000..0846724 --- /dev/null +++ b/frontend/public/assets/flags/bj.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/bl.svg b/frontend/public/assets/flags/bl.svg new file mode 100644 index 0000000..f84cbba --- /dev/null +++ b/frontend/public/assets/flags/bl.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/public/assets/flags/bm.svg b/frontend/public/assets/flags/bm.svg new file mode 100644 index 0000000..f43a5eb --- /dev/null +++ b/frontend/public/assets/flags/bm.svg @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/bn.svg b/frontend/public/assets/flags/bn.svg new file mode 100644 index 0000000..f544c25 --- /dev/null +++ b/frontend/public/assets/flags/bn.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/bo.svg b/frontend/public/assets/flags/bo.svg new file mode 100644 index 0000000..7658e3f --- /dev/null +++ b/frontend/public/assets/flags/bo.svg @@ -0,0 +1,673 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/bq.svg b/frontend/public/assets/flags/bq.svg new file mode 100644 index 0000000..0e6bc76 --- /dev/null +++ b/frontend/public/assets/flags/bq.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/public/assets/flags/br.svg b/frontend/public/assets/flags/br.svg new file mode 100644 index 0000000..719a763 --- /dev/null +++ b/frontend/public/assets/flags/br.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/bs.svg b/frontend/public/assets/flags/bs.svg new file mode 100644 index 0000000..5cc918e --- /dev/null +++ b/frontend/public/assets/flags/bs.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/bt.svg b/frontend/public/assets/flags/bt.svg new file mode 100644 index 0000000..20aef3a --- /dev/null +++ b/frontend/public/assets/flags/bt.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/bv.svg b/frontend/public/assets/flags/bv.svg new file mode 100644 index 0000000..40e16d9 --- /dev/null +++ b/frontend/public/assets/flags/bv.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/bw.svg b/frontend/public/assets/flags/bw.svg new file mode 100644 index 0000000..3435608 --- /dev/null +++ b/frontend/public/assets/flags/bw.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/public/assets/flags/by.svg b/frontend/public/assets/flags/by.svg new file mode 100644 index 0000000..948784f --- /dev/null +++ b/frontend/public/assets/flags/by.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/bz.svg b/frontend/public/assets/flags/bz.svg new file mode 100644 index 0000000..d81b16c --- /dev/null +++ b/frontend/public/assets/flags/bz.svg @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/ca.svg b/frontend/public/assets/flags/ca.svg new file mode 100644 index 0000000..c9b23b4 --- /dev/null +++ b/frontend/public/assets/flags/ca.svg @@ -0,0 +1,4 @@ + + + + diff --git a/frontend/public/assets/flags/cc.svg b/frontend/public/assets/flags/cc.svg new file mode 100644 index 0000000..a42dec6 --- /dev/null +++ b/frontend/public/assets/flags/cc.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/cd.svg b/frontend/public/assets/flags/cd.svg new file mode 100644 index 0000000..b9cf528 --- /dev/null +++ b/frontend/public/assets/flags/cd.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/public/assets/flags/cefta.svg b/frontend/public/assets/flags/cefta.svg new file mode 100644 index 0000000..f748d08 --- /dev/null +++ b/frontend/public/assets/flags/cefta.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/cf.svg b/frontend/public/assets/flags/cf.svg new file mode 100644 index 0000000..a6cd367 --- /dev/null +++ b/frontend/public/assets/flags/cf.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/cg.svg b/frontend/public/assets/flags/cg.svg new file mode 100644 index 0000000..f5a0e42 --- /dev/null +++ b/frontend/public/assets/flags/cg.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/ch.svg b/frontend/public/assets/flags/ch.svg new file mode 100644 index 0000000..b42d670 --- /dev/null +++ b/frontend/public/assets/flags/ch.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/frontend/public/assets/flags/ci.svg b/frontend/public/assets/flags/ci.svg new file mode 100644 index 0000000..e400f0c --- /dev/null +++ b/frontend/public/assets/flags/ci.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/public/assets/flags/ck.svg b/frontend/public/assets/flags/ck.svg new file mode 100644 index 0000000..18e547b --- /dev/null +++ b/frontend/public/assets/flags/ck.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/frontend/public/assets/flags/cl.svg b/frontend/public/assets/flags/cl.svg new file mode 100644 index 0000000..5b3c72f --- /dev/null +++ b/frontend/public/assets/flags/cl.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/cm.svg b/frontend/public/assets/flags/cm.svg new file mode 100644 index 0000000..70adc8b --- /dev/null +++ b/frontend/public/assets/flags/cm.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/cn.svg b/frontend/public/assets/flags/cn.svg new file mode 100644 index 0000000..10d3489 --- /dev/null +++ b/frontend/public/assets/flags/cn.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/frontend/public/assets/flags/co.svg b/frontend/public/assets/flags/co.svg new file mode 100644 index 0000000..ebd0a0f --- /dev/null +++ b/frontend/public/assets/flags/co.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/public/assets/flags/cp.svg b/frontend/public/assets/flags/cp.svg new file mode 100644 index 0000000..b8aa9cf --- /dev/null +++ b/frontend/public/assets/flags/cp.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/public/assets/flags/cr.svg b/frontend/public/assets/flags/cr.svg new file mode 100644 index 0000000..5a409ee --- /dev/null +++ b/frontend/public/assets/flags/cr.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/public/assets/flags/cu.svg b/frontend/public/assets/flags/cu.svg new file mode 100644 index 0000000..053c9ee --- /dev/null +++ b/frontend/public/assets/flags/cu.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/cv.svg b/frontend/public/assets/flags/cv.svg new file mode 100644 index 0000000..aec8994 --- /dev/null +++ b/frontend/public/assets/flags/cv.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/cw.svg b/frontend/public/assets/flags/cw.svg new file mode 100644 index 0000000..bb0ece2 --- /dev/null +++ b/frontend/public/assets/flags/cw.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/cx.svg b/frontend/public/assets/flags/cx.svg new file mode 100644 index 0000000..3a83c23 --- /dev/null +++ b/frontend/public/assets/flags/cx.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/cy.svg b/frontend/public/assets/flags/cy.svg new file mode 100644 index 0000000..ee4b0c7 --- /dev/null +++ b/frontend/public/assets/flags/cy.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/frontend/public/assets/flags/cz.svg b/frontend/public/assets/flags/cz.svg new file mode 100644 index 0000000..7913de3 --- /dev/null +++ b/frontend/public/assets/flags/cz.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/public/assets/flags/de.svg b/frontend/public/assets/flags/de.svg new file mode 100644 index 0000000..71aa2d2 --- /dev/null +++ b/frontend/public/assets/flags/de.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/public/assets/flags/dg.svg b/frontend/public/assets/flags/dg.svg new file mode 100644 index 0000000..dfee2bb --- /dev/null +++ b/frontend/public/assets/flags/dg.svg @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/dj.svg b/frontend/public/assets/flags/dj.svg new file mode 100644 index 0000000..9b00a82 --- /dev/null +++ b/frontend/public/assets/flags/dj.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/dk.svg b/frontend/public/assets/flags/dk.svg new file mode 100644 index 0000000..563277f --- /dev/null +++ b/frontend/public/assets/flags/dk.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/public/assets/flags/dm.svg b/frontend/public/assets/flags/dm.svg new file mode 100644 index 0000000..5aa9cea --- /dev/null +++ b/frontend/public/assets/flags/dm.svg @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/do.svg b/frontend/public/assets/flags/do.svg new file mode 100644 index 0000000..6de2b26 --- /dev/null +++ b/frontend/public/assets/flags/do.svg @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/dz.svg b/frontend/public/assets/flags/dz.svg new file mode 100644 index 0000000..5ff29a7 --- /dev/null +++ b/frontend/public/assets/flags/dz.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/public/assets/flags/eac.svg b/frontend/public/assets/flags/eac.svg new file mode 100644 index 0000000..59d02d2 --- /dev/null +++ b/frontend/public/assets/flags/eac.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/ec.svg b/frontend/public/assets/flags/ec.svg new file mode 100644 index 0000000..88c50bf --- /dev/null +++ b/frontend/public/assets/flags/ec.svg @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/ee.svg b/frontend/public/assets/flags/ee.svg new file mode 100644 index 0000000..8b98c2c --- /dev/null +++ b/frontend/public/assets/flags/ee.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/public/assets/flags/eg.svg b/frontend/public/assets/flags/eg.svg new file mode 100644 index 0000000..88e32b3 --- /dev/null +++ b/frontend/public/assets/flags/eg.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/eh.svg b/frontend/public/assets/flags/eh.svg new file mode 100644 index 0000000..6aec728 --- /dev/null +++ b/frontend/public/assets/flags/eh.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/er.svg b/frontend/public/assets/flags/er.svg new file mode 100644 index 0000000..48a13b4 --- /dev/null +++ b/frontend/public/assets/flags/er.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/frontend/public/assets/flags/es-ct.svg b/frontend/public/assets/flags/es-ct.svg new file mode 100644 index 0000000..4d85911 --- /dev/null +++ b/frontend/public/assets/flags/es-ct.svg @@ -0,0 +1,4 @@ + + + + diff --git a/frontend/public/assets/flags/es-ga.svg b/frontend/public/assets/flags/es-ga.svg new file mode 100644 index 0000000..573ca45 --- /dev/null +++ b/frontend/public/assets/flags/es-ga.svg @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/es-pv.svg b/frontend/public/assets/flags/es-pv.svg new file mode 100644 index 0000000..63c19f4 --- /dev/null +++ b/frontend/public/assets/flags/es-pv.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/public/assets/flags/es.svg b/frontend/public/assets/flags/es.svg new file mode 100644 index 0000000..a296ebf --- /dev/null +++ b/frontend/public/assets/flags/es.svg @@ -0,0 +1,544 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/et.svg b/frontend/public/assets/flags/et.svg new file mode 100644 index 0000000..3f99be4 --- /dev/null +++ b/frontend/public/assets/flags/et.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/eu.svg b/frontend/public/assets/flags/eu.svg new file mode 100644 index 0000000..b0874c1 --- /dev/null +++ b/frontend/public/assets/flags/eu.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/fi.svg b/frontend/public/assets/flags/fi.svg new file mode 100644 index 0000000..470be2d --- /dev/null +++ b/frontend/public/assets/flags/fi.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/public/assets/flags/fj.svg b/frontend/public/assets/flags/fj.svg new file mode 100644 index 0000000..332ae61 --- /dev/null +++ b/frontend/public/assets/flags/fj.svg @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/fk.svg b/frontend/public/assets/flags/fk.svg new file mode 100644 index 0000000..a0dace8 --- /dev/null +++ b/frontend/public/assets/flags/fk.svg @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/fm.svg b/frontend/public/assets/flags/fm.svg new file mode 100644 index 0000000..c1b7c97 --- /dev/null +++ b/frontend/public/assets/flags/fm.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/frontend/public/assets/flags/fo.svg b/frontend/public/assets/flags/fo.svg new file mode 100644 index 0000000..f802d28 --- /dev/null +++ b/frontend/public/assets/flags/fo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/fr.svg b/frontend/public/assets/flags/fr.svg new file mode 100644 index 0000000..e682b90 --- /dev/null +++ b/frontend/public/assets/flags/fr.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/public/assets/flags/ga.svg b/frontend/public/assets/flags/ga.svg new file mode 100644 index 0000000..76edab4 --- /dev/null +++ b/frontend/public/assets/flags/ga.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/public/assets/flags/gb-eng.svg b/frontend/public/assets/flags/gb-eng.svg new file mode 100644 index 0000000..12e3b67 --- /dev/null +++ b/frontend/public/assets/flags/gb-eng.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/public/assets/flags/gb-nir.svg b/frontend/public/assets/flags/gb-nir.svg new file mode 100644 index 0000000..e22190a --- /dev/null +++ b/frontend/public/assets/flags/gb-nir.svg @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/gb-sct.svg b/frontend/public/assets/flags/gb-sct.svg new file mode 100644 index 0000000..f50cd32 --- /dev/null +++ b/frontend/public/assets/flags/gb-sct.svg @@ -0,0 +1,4 @@ + + + + diff --git a/frontend/public/assets/flags/gb-wls.svg b/frontend/public/assets/flags/gb-wls.svg new file mode 100644 index 0000000..d7f5791 --- /dev/null +++ b/frontend/public/assets/flags/gb-wls.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/frontend/public/assets/flags/gb.svg b/frontend/public/assets/flags/gb.svg new file mode 100644 index 0000000..7991383 --- /dev/null +++ b/frontend/public/assets/flags/gb.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/public/assets/flags/gd.svg b/frontend/public/assets/flags/gd.svg new file mode 100644 index 0000000..b3d250d --- /dev/null +++ b/frontend/public/assets/flags/gd.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/ge.svg b/frontend/public/assets/flags/ge.svg new file mode 100644 index 0000000..ab08a9a --- /dev/null +++ b/frontend/public/assets/flags/ge.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/frontend/public/assets/flags/gf.svg b/frontend/public/assets/flags/gf.svg new file mode 100644 index 0000000..f8fe94c --- /dev/null +++ b/frontend/public/assets/flags/gf.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/public/assets/flags/gg.svg b/frontend/public/assets/flags/gg.svg new file mode 100644 index 0000000..f8216c8 --- /dev/null +++ b/frontend/public/assets/flags/gg.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/frontend/public/assets/flags/gh.svg b/frontend/public/assets/flags/gh.svg new file mode 100644 index 0000000..5c3e3e6 --- /dev/null +++ b/frontend/public/assets/flags/gh.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/frontend/public/assets/flags/gi.svg b/frontend/public/assets/flags/gi.svg new file mode 100644 index 0000000..a5d7570 --- /dev/null +++ b/frontend/public/assets/flags/gi.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/gl.svg b/frontend/public/assets/flags/gl.svg new file mode 100644 index 0000000..eb5a52e --- /dev/null +++ b/frontend/public/assets/flags/gl.svg @@ -0,0 +1,4 @@ + + + + diff --git a/frontend/public/assets/flags/gm.svg b/frontend/public/assets/flags/gm.svg new file mode 100644 index 0000000..8fe9d66 --- /dev/null +++ b/frontend/public/assets/flags/gm.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/gn.svg b/frontend/public/assets/flags/gn.svg new file mode 100644 index 0000000..40d6ad4 --- /dev/null +++ b/frontend/public/assets/flags/gn.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/public/assets/flags/gp.svg b/frontend/public/assets/flags/gp.svg new file mode 100644 index 0000000..ee55c4b --- /dev/null +++ b/frontend/public/assets/flags/gp.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/public/assets/flags/gq.svg b/frontend/public/assets/flags/gq.svg new file mode 100644 index 0000000..64c8eb2 --- /dev/null +++ b/frontend/public/assets/flags/gq.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/gr.svg b/frontend/public/assets/flags/gr.svg new file mode 100644 index 0000000..599741e --- /dev/null +++ b/frontend/public/assets/flags/gr.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/gs.svg b/frontend/public/assets/flags/gs.svg new file mode 100644 index 0000000..29db9b9 --- /dev/null +++ b/frontend/public/assets/flags/gs.svg @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/gt.svg b/frontend/public/assets/flags/gt.svg new file mode 100644 index 0000000..7df9df5 --- /dev/null +++ b/frontend/public/assets/flags/gt.svg @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/gu.svg b/frontend/public/assets/flags/gu.svg new file mode 100644 index 0000000..3b95219 --- /dev/null +++ b/frontend/public/assets/flags/gu.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/gw.svg b/frontend/public/assets/flags/gw.svg new file mode 100644 index 0000000..d470bac --- /dev/null +++ b/frontend/public/assets/flags/gw.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/gy.svg b/frontend/public/assets/flags/gy.svg new file mode 100644 index 0000000..569fb56 --- /dev/null +++ b/frontend/public/assets/flags/gy.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/frontend/public/assets/flags/hk.svg b/frontend/public/assets/flags/hk.svg new file mode 100644 index 0000000..4fd55bc --- /dev/null +++ b/frontend/public/assets/flags/hk.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/frontend/public/assets/flags/hm.svg b/frontend/public/assets/flags/hm.svg new file mode 100644 index 0000000..815c482 --- /dev/null +++ b/frontend/public/assets/flags/hm.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/frontend/public/assets/flags/hn.svg b/frontend/public/assets/flags/hn.svg new file mode 100644 index 0000000..11fde67 --- /dev/null +++ b/frontend/public/assets/flags/hn.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/hr.svg b/frontend/public/assets/flags/hr.svg new file mode 100644 index 0000000..dde825c --- /dev/null +++ b/frontend/public/assets/flags/hr.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/ht.svg b/frontend/public/assets/flags/ht.svg new file mode 100644 index 0000000..8e8efc4 --- /dev/null +++ b/frontend/public/assets/flags/ht.svg @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/hu.svg b/frontend/public/assets/flags/hu.svg new file mode 100644 index 0000000..24fbfb9 --- /dev/null +++ b/frontend/public/assets/flags/hu.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/public/assets/flags/ic.svg b/frontend/public/assets/flags/ic.svg new file mode 100644 index 0000000..81e6ee2 --- /dev/null +++ b/frontend/public/assets/flags/ic.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/public/assets/flags/id.svg b/frontend/public/assets/flags/id.svg new file mode 100644 index 0000000..3b7c8fc --- /dev/null +++ b/frontend/public/assets/flags/id.svg @@ -0,0 +1,4 @@ + + + + diff --git a/frontend/public/assets/flags/ie.svg b/frontend/public/assets/flags/ie.svg new file mode 100644 index 0000000..049be14 --- /dev/null +++ b/frontend/public/assets/flags/ie.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/public/assets/flags/il.svg b/frontend/public/assets/flags/il.svg new file mode 100644 index 0000000..f43be7e --- /dev/null +++ b/frontend/public/assets/flags/il.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/im.svg b/frontend/public/assets/flags/im.svg new file mode 100644 index 0000000..fe6a59a --- /dev/null +++ b/frontend/public/assets/flags/im.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/in.svg b/frontend/public/assets/flags/in.svg new file mode 100644 index 0000000..bc47d74 --- /dev/null +++ b/frontend/public/assets/flags/in.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/io.svg b/frontend/public/assets/flags/io.svg new file mode 100644 index 0000000..3058f7d --- /dev/null +++ b/frontend/public/assets/flags/io.svg @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/iq.svg b/frontend/public/assets/flags/iq.svg new file mode 100644 index 0000000..8044514 --- /dev/null +++ b/frontend/public/assets/flags/iq.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/frontend/public/assets/flags/ir.svg b/frontend/public/assets/flags/ir.svg new file mode 100644 index 0000000..8c6d516 --- /dev/null +++ b/frontend/public/assets/flags/ir.svg @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/is.svg b/frontend/public/assets/flags/is.svg new file mode 100644 index 0000000..a6588af --- /dev/null +++ b/frontend/public/assets/flags/is.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/it.svg b/frontend/public/assets/flags/it.svg new file mode 100644 index 0000000..20a8bfd --- /dev/null +++ b/frontend/public/assets/flags/it.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/public/assets/flags/je.svg b/frontend/public/assets/flags/je.svg new file mode 100644 index 0000000..70a8754 --- /dev/null +++ b/frontend/public/assets/flags/je.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/jm.svg b/frontend/public/assets/flags/jm.svg new file mode 100644 index 0000000..269df03 --- /dev/null +++ b/frontend/public/assets/flags/jm.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/frontend/public/assets/flags/jo.svg b/frontend/public/assets/flags/jo.svg new file mode 100644 index 0000000..d6f927d --- /dev/null +++ b/frontend/public/assets/flags/jo.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/jp.svg b/frontend/public/assets/flags/jp.svg new file mode 100644 index 0000000..cc1c181 --- /dev/null +++ b/frontend/public/assets/flags/jp.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/frontend/public/assets/flags/ke.svg b/frontend/public/assets/flags/ke.svg new file mode 100644 index 0000000..3a67ca3 --- /dev/null +++ b/frontend/public/assets/flags/ke.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/kg.svg b/frontend/public/assets/flags/kg.svg new file mode 100644 index 0000000..e26db95 --- /dev/null +++ b/frontend/public/assets/flags/kg.svg @@ -0,0 +1,4 @@ + + + + diff --git a/frontend/public/assets/flags/kh.svg b/frontend/public/assets/flags/kh.svg new file mode 100644 index 0000000..a7d52f2 --- /dev/null +++ b/frontend/public/assets/flags/kh.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/ki.svg b/frontend/public/assets/flags/ki.svg new file mode 100644 index 0000000..fda03f3 --- /dev/null +++ b/frontend/public/assets/flags/ki.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/km.svg b/frontend/public/assets/flags/km.svg new file mode 100644 index 0000000..414d65e --- /dev/null +++ b/frontend/public/assets/flags/km.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/kn.svg b/frontend/public/assets/flags/kn.svg new file mode 100644 index 0000000..47fe64d --- /dev/null +++ b/frontend/public/assets/flags/kn.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/kp.svg b/frontend/public/assets/flags/kp.svg new file mode 100644 index 0000000..ad1b713 --- /dev/null +++ b/frontend/public/assets/flags/kp.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/kr.svg b/frontend/public/assets/flags/kr.svg new file mode 100644 index 0000000..6947eab --- /dev/null +++ b/frontend/public/assets/flags/kr.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/kw.svg b/frontend/public/assets/flags/kw.svg new file mode 100644 index 0000000..3dd89e9 --- /dev/null +++ b/frontend/public/assets/flags/kw.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/ky.svg b/frontend/public/assets/flags/ky.svg new file mode 100644 index 0000000..aeaa7e0 --- /dev/null +++ b/frontend/public/assets/flags/ky.svg @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/kz.svg b/frontend/public/assets/flags/kz.svg new file mode 100644 index 0000000..2fac45b --- /dev/null +++ b/frontend/public/assets/flags/kz.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/la.svg b/frontend/public/assets/flags/la.svg new file mode 100644 index 0000000..6aea6b7 --- /dev/null +++ b/frontend/public/assets/flags/la.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/lb.svg b/frontend/public/assets/flags/lb.svg new file mode 100644 index 0000000..bde2581 --- /dev/null +++ b/frontend/public/assets/flags/lb.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/lc.svg b/frontend/public/assets/flags/lc.svg new file mode 100644 index 0000000..bb25654 --- /dev/null +++ b/frontend/public/assets/flags/lc.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/frontend/public/assets/flags/li.svg b/frontend/public/assets/flags/li.svg new file mode 100644 index 0000000..7a4d183 --- /dev/null +++ b/frontend/public/assets/flags/li.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/lk.svg b/frontend/public/assets/flags/lk.svg new file mode 100644 index 0000000..cbd660a --- /dev/null +++ b/frontend/public/assets/flags/lk.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/lr.svg b/frontend/public/assets/flags/lr.svg new file mode 100644 index 0000000..e482ab9 --- /dev/null +++ b/frontend/public/assets/flags/lr.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/ls.svg b/frontend/public/assets/flags/ls.svg new file mode 100644 index 0000000..a7c01a9 --- /dev/null +++ b/frontend/public/assets/flags/ls.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/frontend/public/assets/flags/lt.svg b/frontend/public/assets/flags/lt.svg new file mode 100644 index 0000000..90ec5d2 --- /dev/null +++ b/frontend/public/assets/flags/lt.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/public/assets/flags/lu.svg b/frontend/public/assets/flags/lu.svg new file mode 100644 index 0000000..cc12206 --- /dev/null +++ b/frontend/public/assets/flags/lu.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/public/assets/flags/lv.svg b/frontend/public/assets/flags/lv.svg new file mode 100644 index 0000000..f6decec --- /dev/null +++ b/frontend/public/assets/flags/lv.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/public/assets/flags/ly.svg b/frontend/public/assets/flags/ly.svg new file mode 100644 index 0000000..1eaa51e --- /dev/null +++ b/frontend/public/assets/flags/ly.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/ma.svg b/frontend/public/assets/flags/ma.svg new file mode 100644 index 0000000..7ce56ef --- /dev/null +++ b/frontend/public/assets/flags/ma.svg @@ -0,0 +1,4 @@ + + + + diff --git a/frontend/public/assets/flags/mc.svg b/frontend/public/assets/flags/mc.svg new file mode 100644 index 0000000..9cb6c9e --- /dev/null +++ b/frontend/public/assets/flags/mc.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/frontend/public/assets/flags/md.svg b/frontend/public/assets/flags/md.svg new file mode 100644 index 0000000..e9ba506 --- /dev/null +++ b/frontend/public/assets/flags/md.svg @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/me.svg b/frontend/public/assets/flags/me.svg new file mode 100644 index 0000000..297888c --- /dev/null +++ b/frontend/public/assets/flags/me.svg @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/mf.svg b/frontend/public/assets/flags/mf.svg new file mode 100644 index 0000000..6305edc --- /dev/null +++ b/frontend/public/assets/flags/mf.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/public/assets/flags/mg.svg b/frontend/public/assets/flags/mg.svg new file mode 100644 index 0000000..5fa2d24 --- /dev/null +++ b/frontend/public/assets/flags/mg.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/public/assets/flags/mh.svg b/frontend/public/assets/flags/mh.svg new file mode 100644 index 0000000..7b9f490 --- /dev/null +++ b/frontend/public/assets/flags/mh.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/public/assets/flags/mk.svg b/frontend/public/assets/flags/mk.svg new file mode 100644 index 0000000..4f5cae7 --- /dev/null +++ b/frontend/public/assets/flags/mk.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/public/assets/flags/ml.svg b/frontend/public/assets/flags/ml.svg new file mode 100644 index 0000000..6f6b716 --- /dev/null +++ b/frontend/public/assets/flags/ml.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/public/assets/flags/mm.svg b/frontend/public/assets/flags/mm.svg new file mode 100644 index 0000000..42b4dee --- /dev/null +++ b/frontend/public/assets/flags/mm.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/mn.svg b/frontend/public/assets/flags/mn.svg new file mode 100644 index 0000000..6a38a71 --- /dev/null +++ b/frontend/public/assets/flags/mn.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/mo.svg b/frontend/public/assets/flags/mo.svg new file mode 100644 index 0000000..f638b6c --- /dev/null +++ b/frontend/public/assets/flags/mo.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/frontend/public/assets/flags/mp.svg b/frontend/public/assets/flags/mp.svg new file mode 100644 index 0000000..26bfa22 --- /dev/null +++ b/frontend/public/assets/flags/mp.svg @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/mq.svg b/frontend/public/assets/flags/mq.svg new file mode 100644 index 0000000..b221951 --- /dev/null +++ b/frontend/public/assets/flags/mq.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/public/assets/flags/mr.svg b/frontend/public/assets/flags/mr.svg new file mode 100644 index 0000000..d859972 --- /dev/null +++ b/frontend/public/assets/flags/mr.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/frontend/public/assets/flags/ms.svg b/frontend/public/assets/flags/ms.svg new file mode 100644 index 0000000..4367505 --- /dev/null +++ b/frontend/public/assets/flags/ms.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/mt.svg b/frontend/public/assets/flags/mt.svg new file mode 100644 index 0000000..5d5d7c8 --- /dev/null +++ b/frontend/public/assets/flags/mt.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/mu.svg b/frontend/public/assets/flags/mu.svg new file mode 100644 index 0000000..82d7a3b --- /dev/null +++ b/frontend/public/assets/flags/mu.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/frontend/public/assets/flags/mv.svg b/frontend/public/assets/flags/mv.svg new file mode 100644 index 0000000..10450f9 --- /dev/null +++ b/frontend/public/assets/flags/mv.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/frontend/public/assets/flags/mw.svg b/frontend/public/assets/flags/mw.svg new file mode 100644 index 0000000..137ff87 --- /dev/null +++ b/frontend/public/assets/flags/mw.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/frontend/public/assets/flags/mx.svg b/frontend/public/assets/flags/mx.svg new file mode 100644 index 0000000..e3ec2bc --- /dev/null +++ b/frontend/public/assets/flags/mx.svg @@ -0,0 +1,382 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/my.svg b/frontend/public/assets/flags/my.svg new file mode 100644 index 0000000..115f864 --- /dev/null +++ b/frontend/public/assets/flags/my.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/mz.svg b/frontend/public/assets/flags/mz.svg new file mode 100644 index 0000000..0f94c3a --- /dev/null +++ b/frontend/public/assets/flags/mz.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/na.svg b/frontend/public/assets/flags/na.svg new file mode 100644 index 0000000..35b9f78 --- /dev/null +++ b/frontend/public/assets/flags/na.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/nc.svg b/frontend/public/assets/flags/nc.svg new file mode 100644 index 0000000..fa15551 --- /dev/null +++ b/frontend/public/assets/flags/nc.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/ne.svg b/frontend/public/assets/flags/ne.svg new file mode 100644 index 0000000..39a82b8 --- /dev/null +++ b/frontend/public/assets/flags/ne.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/frontend/public/assets/flags/nf.svg b/frontend/public/assets/flags/nf.svg new file mode 100644 index 0000000..fd61b25 --- /dev/null +++ b/frontend/public/assets/flags/nf.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/frontend/public/assets/flags/ng.svg b/frontend/public/assets/flags/ng.svg new file mode 100644 index 0000000..81eb35f --- /dev/null +++ b/frontend/public/assets/flags/ng.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/frontend/public/assets/flags/ni.svg b/frontend/public/assets/flags/ni.svg new file mode 100644 index 0000000..e4861f5 --- /dev/null +++ b/frontend/public/assets/flags/ni.svg @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/nl.svg b/frontend/public/assets/flags/nl.svg new file mode 100644 index 0000000..e90f5b0 --- /dev/null +++ b/frontend/public/assets/flags/nl.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/public/assets/flags/no.svg b/frontend/public/assets/flags/no.svg new file mode 100644 index 0000000..a5f2a15 --- /dev/null +++ b/frontend/public/assets/flags/no.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/public/assets/flags/np.svg b/frontend/public/assets/flags/np.svg new file mode 100644 index 0000000..6242856 --- /dev/null +++ b/frontend/public/assets/flags/np.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/nr.svg b/frontend/public/assets/flags/nr.svg new file mode 100644 index 0000000..ff394c4 --- /dev/null +++ b/frontend/public/assets/flags/nr.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/nu.svg b/frontend/public/assets/flags/nu.svg new file mode 100644 index 0000000..4067baf --- /dev/null +++ b/frontend/public/assets/flags/nu.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/frontend/public/assets/flags/nz.svg b/frontend/public/assets/flags/nz.svg new file mode 100644 index 0000000..935d8a7 --- /dev/null +++ b/frontend/public/assets/flags/nz.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/om.svg b/frontend/public/assets/flags/om.svg new file mode 100644 index 0000000..4f1461a --- /dev/null +++ b/frontend/public/assets/flags/om.svg @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/pa.svg b/frontend/public/assets/flags/pa.svg new file mode 100644 index 0000000..9ab733f --- /dev/null +++ b/frontend/public/assets/flags/pa.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/public/assets/flags/pc.svg b/frontend/public/assets/flags/pc.svg new file mode 100644 index 0000000..5202d6d --- /dev/null +++ b/frontend/public/assets/flags/pc.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/pe.svg b/frontend/public/assets/flags/pe.svg new file mode 100644 index 0000000..33e6cfd --- /dev/null +++ b/frontend/public/assets/flags/pe.svg @@ -0,0 +1,4 @@ + + + + diff --git a/frontend/public/assets/flags/pf.svg b/frontend/public/assets/flags/pf.svg new file mode 100644 index 0000000..bea0354 --- /dev/null +++ b/frontend/public/assets/flags/pf.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/pg.svg b/frontend/public/assets/flags/pg.svg new file mode 100644 index 0000000..7b7e77a --- /dev/null +++ b/frontend/public/assets/flags/pg.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/frontend/public/assets/flags/ph.svg b/frontend/public/assets/flags/ph.svg new file mode 100644 index 0000000..b910e24 --- /dev/null +++ b/frontend/public/assets/flags/ph.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/frontend/public/assets/flags/pk.svg b/frontend/public/assets/flags/pk.svg new file mode 100644 index 0000000..4ddc19f --- /dev/null +++ b/frontend/public/assets/flags/pk.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/pl.svg b/frontend/public/assets/flags/pl.svg new file mode 100644 index 0000000..42d2b0c --- /dev/null +++ b/frontend/public/assets/flags/pl.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/frontend/public/assets/flags/pm.svg b/frontend/public/assets/flags/pm.svg new file mode 100644 index 0000000..19a9330 --- /dev/null +++ b/frontend/public/assets/flags/pm.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/public/assets/flags/pn.svg b/frontend/public/assets/flags/pn.svg new file mode 100644 index 0000000..209ea71 --- /dev/null +++ b/frontend/public/assets/flags/pn.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/pr.svg b/frontend/public/assets/flags/pr.svg new file mode 100644 index 0000000..ec51831 --- /dev/null +++ b/frontend/public/assets/flags/pr.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/ps.svg b/frontend/public/assets/flags/ps.svg new file mode 100644 index 0000000..362d435 --- /dev/null +++ b/frontend/public/assets/flags/ps.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/frontend/public/assets/flags/pt.svg b/frontend/public/assets/flags/pt.svg new file mode 100644 index 0000000..2767cd4 --- /dev/null +++ b/frontend/public/assets/flags/pt.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/pw.svg b/frontend/public/assets/flags/pw.svg new file mode 100644 index 0000000..9f89c5f --- /dev/null +++ b/frontend/public/assets/flags/pw.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/frontend/public/assets/flags/py.svg b/frontend/public/assets/flags/py.svg new file mode 100644 index 0000000..abccd87 --- /dev/null +++ b/frontend/public/assets/flags/py.svg @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/qa.svg b/frontend/public/assets/flags/qa.svg new file mode 100644 index 0000000..901f3fa --- /dev/null +++ b/frontend/public/assets/flags/qa.svg @@ -0,0 +1,4 @@ + + + + diff --git a/frontend/public/assets/flags/re.svg b/frontend/public/assets/flags/re.svg new file mode 100644 index 0000000..64e788e --- /dev/null +++ b/frontend/public/assets/flags/re.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/public/assets/flags/ro.svg b/frontend/public/assets/flags/ro.svg new file mode 100644 index 0000000..fda0f7b --- /dev/null +++ b/frontend/public/assets/flags/ro.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/public/assets/flags/rs.svg b/frontend/public/assets/flags/rs.svg new file mode 100644 index 0000000..6d4f74d --- /dev/null +++ b/frontend/public/assets/flags/rs.svg @@ -0,0 +1,292 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/ru.svg b/frontend/public/assets/flags/ru.svg new file mode 100644 index 0000000..cf24301 --- /dev/null +++ b/frontend/public/assets/flags/ru.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/public/assets/flags/rw.svg b/frontend/public/assets/flags/rw.svg new file mode 100644 index 0000000..06e26ae --- /dev/null +++ b/frontend/public/assets/flags/rw.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/sa.svg b/frontend/public/assets/flags/sa.svg new file mode 100644 index 0000000..596cf48 --- /dev/null +++ b/frontend/public/assets/flags/sa.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/sb.svg b/frontend/public/assets/flags/sb.svg new file mode 100644 index 0000000..6066f94 --- /dev/null +++ b/frontend/public/assets/flags/sb.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/sc.svg b/frontend/public/assets/flags/sc.svg new file mode 100644 index 0000000..9a46b36 --- /dev/null +++ b/frontend/public/assets/flags/sc.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/public/assets/flags/sd.svg b/frontend/public/assets/flags/sd.svg new file mode 100644 index 0000000..12818b4 --- /dev/null +++ b/frontend/public/assets/flags/sd.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/se.svg b/frontend/public/assets/flags/se.svg new file mode 100644 index 0000000..8ba745a --- /dev/null +++ b/frontend/public/assets/flags/se.svg @@ -0,0 +1,4 @@ + + + + diff --git a/frontend/public/assets/flags/sg.svg b/frontend/public/assets/flags/sg.svg new file mode 100644 index 0000000..c4dd4ac --- /dev/null +++ b/frontend/public/assets/flags/sg.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/sh-ac.svg b/frontend/public/assets/flags/sh-ac.svg new file mode 100644 index 0000000..c43b301 --- /dev/null +++ b/frontend/public/assets/flags/sh-ac.svg @@ -0,0 +1,689 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/sh-hl.svg b/frontend/public/assets/flags/sh-hl.svg new file mode 100644 index 0000000..2150bf6 --- /dev/null +++ b/frontend/public/assets/flags/sh-hl.svg @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/sh-ta.svg b/frontend/public/assets/flags/sh-ta.svg new file mode 100644 index 0000000..ba39063 --- /dev/null +++ b/frontend/public/assets/flags/sh-ta.svg @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/sh.svg b/frontend/public/assets/flags/sh.svg new file mode 100644 index 0000000..7aba0ae --- /dev/null +++ b/frontend/public/assets/flags/sh.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/public/assets/flags/si.svg b/frontend/public/assets/flags/si.svg new file mode 100644 index 0000000..1bbdd94 --- /dev/null +++ b/frontend/public/assets/flags/si.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/sj.svg b/frontend/public/assets/flags/sj.svg new file mode 100644 index 0000000..bb2799c --- /dev/null +++ b/frontend/public/assets/flags/sj.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/public/assets/flags/sk.svg b/frontend/public/assets/flags/sk.svg new file mode 100644 index 0000000..676018e --- /dev/null +++ b/frontend/public/assets/flags/sk.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/frontend/public/assets/flags/sl.svg b/frontend/public/assets/flags/sl.svg new file mode 100644 index 0000000..a07baf7 --- /dev/null +++ b/frontend/public/assets/flags/sl.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/public/assets/flags/sm.svg b/frontend/public/assets/flags/sm.svg new file mode 100644 index 0000000..e41d2f7 --- /dev/null +++ b/frontend/public/assets/flags/sm.svg @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/sn.svg b/frontend/public/assets/flags/sn.svg new file mode 100644 index 0000000..7c0673d --- /dev/null +++ b/frontend/public/assets/flags/sn.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/frontend/public/assets/flags/so.svg b/frontend/public/assets/flags/so.svg new file mode 100644 index 0000000..a581ac6 --- /dev/null +++ b/frontend/public/assets/flags/so.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/frontend/public/assets/flags/sr.svg b/frontend/public/assets/flags/sr.svg new file mode 100644 index 0000000..5e71c40 --- /dev/null +++ b/frontend/public/assets/flags/sr.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/frontend/public/assets/flags/ss.svg b/frontend/public/assets/flags/ss.svg new file mode 100644 index 0000000..b257aa0 --- /dev/null +++ b/frontend/public/assets/flags/ss.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/frontend/public/assets/flags/st.svg b/frontend/public/assets/flags/st.svg new file mode 100644 index 0000000..1294bcb --- /dev/null +++ b/frontend/public/assets/flags/st.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/sv.svg b/frontend/public/assets/flags/sv.svg new file mode 100644 index 0000000..cbc674a --- /dev/null +++ b/frontend/public/assets/flags/sv.svg @@ -0,0 +1,593 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/sx.svg b/frontend/public/assets/flags/sx.svg new file mode 100644 index 0000000..ac78561 --- /dev/null +++ b/frontend/public/assets/flags/sx.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/sy.svg b/frontend/public/assets/flags/sy.svg new file mode 100644 index 0000000..97c05cf --- /dev/null +++ b/frontend/public/assets/flags/sy.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/frontend/public/assets/flags/sz.svg b/frontend/public/assets/flags/sz.svg new file mode 100644 index 0000000..eb538e4 --- /dev/null +++ b/frontend/public/assets/flags/sz.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/tc.svg b/frontend/public/assets/flags/tc.svg new file mode 100644 index 0000000..1258971 --- /dev/null +++ b/frontend/public/assets/flags/tc.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/td.svg b/frontend/public/assets/flags/td.svg new file mode 100644 index 0000000..fa3bd92 --- /dev/null +++ b/frontend/public/assets/flags/td.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/public/assets/flags/tf.svg b/frontend/public/assets/flags/tf.svg new file mode 100644 index 0000000..fba2335 --- /dev/null +++ b/frontend/public/assets/flags/tf.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/tg.svg b/frontend/public/assets/flags/tg.svg new file mode 100644 index 0000000..9d6ea6c --- /dev/null +++ b/frontend/public/assets/flags/tg.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/th.svg b/frontend/public/assets/flags/th.svg new file mode 100644 index 0000000..1e93a61 --- /dev/null +++ b/frontend/public/assets/flags/th.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/public/assets/flags/tj.svg b/frontend/public/assets/flags/tj.svg new file mode 100644 index 0000000..f8c9a03 --- /dev/null +++ b/frontend/public/assets/flags/tj.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/tk.svg b/frontend/public/assets/flags/tk.svg new file mode 100644 index 0000000..05d3e86 --- /dev/null +++ b/frontend/public/assets/flags/tk.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/public/assets/flags/tl.svg b/frontend/public/assets/flags/tl.svg new file mode 100644 index 0000000..3d0701a --- /dev/null +++ b/frontend/public/assets/flags/tl.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/tm.svg b/frontend/public/assets/flags/tm.svg new file mode 100644 index 0000000..4154ed7 --- /dev/null +++ b/frontend/public/assets/flags/tm.svg @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/tn.svg b/frontend/public/assets/flags/tn.svg new file mode 100644 index 0000000..5735c19 --- /dev/null +++ b/frontend/public/assets/flags/tn.svg @@ -0,0 +1,4 @@ + + + + diff --git a/frontend/public/assets/flags/to.svg b/frontend/public/assets/flags/to.svg new file mode 100644 index 0000000..d072337 --- /dev/null +++ b/frontend/public/assets/flags/to.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/frontend/public/assets/flags/tr.svg b/frontend/public/assets/flags/tr.svg new file mode 100644 index 0000000..b96da21 --- /dev/null +++ b/frontend/public/assets/flags/tr.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/frontend/public/assets/flags/tt.svg b/frontend/public/assets/flags/tt.svg new file mode 100644 index 0000000..bc24938 --- /dev/null +++ b/frontend/public/assets/flags/tt.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/public/assets/flags/tv.svg b/frontend/public/assets/flags/tv.svg new file mode 100644 index 0000000..675210e --- /dev/null +++ b/frontend/public/assets/flags/tv.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/frontend/public/assets/flags/tw.svg b/frontend/public/assets/flags/tw.svg new file mode 100644 index 0000000..57fd98b --- /dev/null +++ b/frontend/public/assets/flags/tw.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/tz.svg b/frontend/public/assets/flags/tz.svg new file mode 100644 index 0000000..a2cfbca --- /dev/null +++ b/frontend/public/assets/flags/tz.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/ua.svg b/frontend/public/assets/flags/ua.svg new file mode 100644 index 0000000..03daa19 --- /dev/null +++ b/frontend/public/assets/flags/ua.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/frontend/public/assets/flags/ug.svg b/frontend/public/assets/flags/ug.svg new file mode 100644 index 0000000..520eee5 --- /dev/null +++ b/frontend/public/assets/flags/ug.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/um.svg b/frontend/public/assets/flags/um.svg new file mode 100644 index 0000000..9e9edda --- /dev/null +++ b/frontend/public/assets/flags/um.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/frontend/public/assets/flags/un.svg b/frontend/public/assets/flags/un.svg new file mode 100644 index 0000000..632bbb4 --- /dev/null +++ b/frontend/public/assets/flags/un.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/us.svg b/frontend/public/assets/flags/us.svg new file mode 100644 index 0000000..9cfd0c9 --- /dev/null +++ b/frontend/public/assets/flags/us.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/frontend/public/assets/flags/uy.svg b/frontend/public/assets/flags/uy.svg new file mode 100644 index 0000000..62c36f8 --- /dev/null +++ b/frontend/public/assets/flags/uy.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/uz.svg b/frontend/public/assets/flags/uz.svg new file mode 100644 index 0000000..0ccca1b --- /dev/null +++ b/frontend/public/assets/flags/uz.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/va.svg b/frontend/public/assets/flags/va.svg new file mode 100644 index 0000000..3e297d6 --- /dev/null +++ b/frontend/public/assets/flags/va.svg @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/vc.svg b/frontend/public/assets/flags/vc.svg new file mode 100644 index 0000000..f26c2d8 --- /dev/null +++ b/frontend/public/assets/flags/vc.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/frontend/public/assets/flags/ve.svg b/frontend/public/assets/flags/ve.svg new file mode 100644 index 0000000..314e7f5 --- /dev/null +++ b/frontend/public/assets/flags/ve.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/vg.svg b/frontend/public/assets/flags/vg.svg new file mode 100644 index 0000000..ac90088 --- /dev/null +++ b/frontend/public/assets/flags/vg.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/vi.svg b/frontend/public/assets/flags/vi.svg new file mode 100644 index 0000000..d88d68f --- /dev/null +++ b/frontend/public/assets/flags/vi.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/vn.svg b/frontend/public/assets/flags/vn.svg new file mode 100644 index 0000000..7e4bac8 --- /dev/null +++ b/frontend/public/assets/flags/vn.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/frontend/public/assets/flags/vu.svg b/frontend/public/assets/flags/vu.svg new file mode 100644 index 0000000..326d29e --- /dev/null +++ b/frontend/public/assets/flags/vu.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/wf.svg b/frontend/public/assets/flags/wf.svg new file mode 100644 index 0000000..054c57d --- /dev/null +++ b/frontend/public/assets/flags/wf.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/public/assets/flags/ws.svg b/frontend/public/assets/flags/ws.svg new file mode 100644 index 0000000..0e758a7 --- /dev/null +++ b/frontend/public/assets/flags/ws.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/public/assets/flags/xk.svg b/frontend/public/assets/flags/xk.svg new file mode 100644 index 0000000..0e8958d --- /dev/null +++ b/frontend/public/assets/flags/xk.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/public/assets/flags/xx.svg b/frontend/public/assets/flags/xx.svg new file mode 100644 index 0000000..9333be3 --- /dev/null +++ b/frontend/public/assets/flags/xx.svg @@ -0,0 +1,4 @@ + + + + diff --git a/frontend/public/assets/flags/ye.svg b/frontend/public/assets/flags/ye.svg new file mode 100644 index 0000000..1c9e6d6 --- /dev/null +++ b/frontend/public/assets/flags/ye.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/public/assets/flags/yt.svg b/frontend/public/assets/flags/yt.svg new file mode 100644 index 0000000..e7776b3 --- /dev/null +++ b/frontend/public/assets/flags/yt.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/public/assets/flags/za.svg b/frontend/public/assets/flags/za.svg new file mode 100644 index 0000000..d563adb --- /dev/null +++ b/frontend/public/assets/flags/za.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/zm.svg b/frontend/public/assets/flags/zm.svg new file mode 100644 index 0000000..360f37a --- /dev/null +++ b/frontend/public/assets/flags/zm.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/assets/flags/zw.svg b/frontend/public/assets/flags/zw.svg new file mode 100644 index 0000000..93aac4f --- /dev/null +++ b/frontend/public/assets/flags/zw.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/src/components/TitleBar.tsx b/frontend/src/components/TitleBar.tsx index e1cff6c..6eb963c 100644 --- a/frontend/src/components/TitleBar.tsx +++ b/frontend/src/components/TitleBar.tsx @@ -1,8 +1,85 @@ import { X, Minus, Maximize, SlidersHorizontal, Globe } from "lucide-react"; import { WindowMinimise, WindowToggleMaximise, Quit } from "../../wailsjs/runtime/runtime"; -import { Menubar, MenubarContent, MenubarMenu, MenubarItem, MenubarTrigger } from "@/components/ui/menubar"; +import { Menubar, MenubarContent, MenubarMenu, MenubarItem, MenubarTrigger, MenubarLabel, MenubarSeparator } from "@/components/ui/menubar"; +import { fetchCurrentIPInfo } from "@/lib/api"; +import type { CurrentIPInfo } from "@/types/api"; import { openExternal } from "@/lib/utils"; +import { useEffect, useRef, useState } from "react"; + +const IP_INFO_REFRESH_INTERVAL_MS = 30000; +const SPOTIFY_BLOCKED_COUNTRY_CODES = new Set([ + "AF", + "IO", + "CF", + "CN", + "CU", + "ER", + "IR", + "MM", + "KP", + "RU", + "SO", + "SS", + "SD", + "SY", + "TM", + "YE", +]); + export function TitleBar() { + const [currentIPInfo, setCurrentIPInfo] = useState(null); + const [isLoadingCurrentIPInfo, setIsLoadingCurrentIPInfo] = useState(false); + const [currentIPInfoError, setCurrentIPInfoError] = useState(""); + const currentIPInfoRef = useRef(null); + useEffect(() => { + currentIPInfoRef.current = currentIPInfo; + }, [currentIPInfo]); + const loadCurrentIPInfo = async (options?: { + silent?: boolean; + }) => { + const silent = options?.silent ?? false; + if (!silent) { + setIsLoadingCurrentIPInfo(true); + setCurrentIPInfoError(""); + } + try { + const info = await fetchCurrentIPInfo(); + setCurrentIPInfo(info); + setCurrentIPInfoError(""); + } + catch (error) { + if (!silent || !currentIPInfoRef.current) { + setCurrentIPInfo(null); + setCurrentIPInfoError(error instanceof Error ? error.message : "Unable to detect IP"); + } + } + finally { + if (!silent) { + setIsLoadingCurrentIPInfo(false); + } + } + }; + useEffect(() => { + void loadCurrentIPInfo(); + }, []); + useEffect(() => { + const intervalId = window.setInterval(() => { + void loadCurrentIPInfo({ silent: true }); + }, IP_INFO_REFRESH_INTERVAL_MS); + const handleFocus = () => { + if (document.visibilityState === "hidden") { + return; + } + void loadCurrentIPInfo({ silent: true }); + }; + window.addEventListener("focus", handleFocus); + document.addEventListener("visibilitychange", handleFocus); + return () => { + window.clearInterval(intervalId); + window.removeEventListener("focus", handleFocus); + document.removeEventListener("visibilitychange", handleFocus); + }; + }, []); const handleMinimize = () => { WindowMinimise(); }; @@ -12,6 +89,9 @@ export function TitleBar() { const handleClose = () => { Quit(); }; + const detectedCountryCode = currentIPInfo?.country_code?.toUpperCase() || ""; + const detectedFlagPath = detectedCountryCode ? `/assets/flags/${detectedCountryCode.toLowerCase()}.svg` : ""; + const isSpotifyBlockedCountry = detectedCountryCode !== "" && SPOTIFY_BLOCKED_COUNTRY_CODES.has(detectedCountryCode); return (<>
@@ -23,11 +103,33 @@ export function TitleBar() { - + openExternal("https://afkarxyz.qzz.io")} className="gap-2"> Website + +
+ Network +
+
+
+ {detectedFlagPath ? ({detectedCountryCode}) : ()} + + {isLoadingCurrentIPInfo + ? "Detecting..." + : currentIPInfo + ? `${currentIPInfo.ip} - ${currentIPInfo.country}${detectedCountryCode ? ` (${detectedCountryCode})` : ""}` + : "Unavailable"} + +
+ {isSpotifyBlockedCountry && (
+ Your Country Blocked by Spotify +
)} + {!isLoadingCurrentIPInfo && !currentIPInfo && currentIPInfoError && (
+ IP detection unavailable +
)} +
diff --git a/frontend/src/lib/api.ts b/frontend/src/lib/api.ts index e46a9ed..d2160f1 100644 --- a/frontend/src/lib/api.ts +++ b/frontend/src/lib/api.ts @@ -1,5 +1,5 @@ -import type { SpotifyMetadataResponse, DownloadRequest, DownloadResponse, HealthResponse, LyricsDownloadRequest, LyricsDownloadResponse, CoverDownloadRequest, CoverDownloadResponse, HeaderDownloadRequest, HeaderDownloadResponse, GalleryImageDownloadRequest, GalleryImageDownloadResponse, AvatarDownloadRequest, AvatarDownloadResponse, } from "@/types/api"; -import { GetSpotifyMetadata, DownloadTrack, DownloadLyrics, DownloadCover, DownloadHeader, DownloadGalleryImage, DownloadAvatar } from "../../wailsjs/go/main/App"; +import type { SpotifyMetadataResponse, DownloadRequest, DownloadResponse, HealthResponse, CurrentIPInfo, LyricsDownloadRequest, LyricsDownloadResponse, CoverDownloadRequest, CoverDownloadResponse, HeaderDownloadRequest, HeaderDownloadResponse, GalleryImageDownloadRequest, GalleryImageDownloadResponse, AvatarDownloadRequest, AvatarDownloadResponse, } from "@/types/api"; +import { GetSpotifyMetadata, GetCurrentIPInfo, DownloadTrack, DownloadLyrics, DownloadCover, DownloadHeader, DownloadGalleryImage, DownloadAvatar } from "../../wailsjs/go/main/App"; import { main } from "../../wailsjs/go/models"; export async function fetchSpotifyMetadata(url: string, batch: boolean = true, delay: number = 1.0, timeout: number = 300.0): Promise { const req = new main.SpotifyMetadataRequest({ @@ -24,6 +24,10 @@ export async function checkHealth(): Promise { time: new Date().toISOString(), }; } +export async function fetchCurrentIPInfo(): Promise { + const jsonString = await GetCurrentIPInfo(); + return JSON.parse(jsonString); +} export async function downloadLyrics(request: LyricsDownloadRequest): Promise { const req = new main.LyricsDownloadRequest(request); return await DownloadLyrics(req); diff --git a/frontend/src/types/api.ts b/frontend/src/types/api.ts index 1bc6a9d..48dc659 100644 --- a/frontend/src/types/api.ts +++ b/frontend/src/types/api.ts @@ -157,6 +157,12 @@ export interface HealthResponse { status: string; time: string; } +export interface CurrentIPInfo { + ip: string; + country: string; + country_code?: string; + source?: string; +} export interface TimeSlice { time: number; magnitudes: number[] | Float32Array; diff --git a/frontend/wailsjs/go/main/App.d.ts b/frontend/wailsjs/go/main/App.d.ts new file mode 100644 index 0000000..d3caaa0 --- /dev/null +++ b/frontend/wailsjs/go/main/App.d.ts @@ -0,0 +1,142 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT +import {backend} from '../models'; +import {main} from '../models'; + +export function AddFetchHistory(arg1:backend.FetchHistoryItem):Promise; + +export function AddToDownloadQueue(arg1:string,arg2:string,arg3:string,arg4:string):Promise; + +export function CancelAllQueuedItems():Promise; + +export function CheckAPIStatus(arg1:string,arg2:string):Promise; + +export function CheckFFmpegInstalled():Promise; + +export function CheckFilesExistence(arg1:string,arg2:string,arg3:Array):Promise>; + +export function CheckTrackAvailability(arg1:string):Promise; + +export function ClearAllDownloads():Promise; + +export function ClearCompletedDownloads():Promise; + +export function ClearDownloadHistory():Promise; + +export function ClearFetchHistory():Promise; + +export function ClearFetchHistoryByType(arg1:string):Promise; + +export function ConvertAudio(arg1:main.ConvertAudioRequest):Promise>; + +export function CreateM3U8File(arg1:string,arg2:string,arg3:Array):Promise; + +export function DecodeAudioForAnalysis(arg1:string):Promise; + +export function DeleteDownloadHistoryItem(arg1:string):Promise; + +export function DeleteFetchHistoryItem(arg1:string):Promise; + +export function DownloadAvatar(arg1:main.AvatarDownloadRequest):Promise; + +export function DownloadCover(arg1:main.CoverDownloadRequest):Promise; + +export function DownloadFFmpeg():Promise; + +export function DownloadGalleryImage(arg1:main.GalleryImageDownloadRequest):Promise; + +export function DownloadHeader(arg1:main.HeaderDownloadRequest):Promise; + +export function DownloadLyrics(arg1:main.LyricsDownloadRequest):Promise; + +export function DownloadTrack(arg1:main.DownloadRequest):Promise; + +export function ExportFailedDownloads():Promise; + +export function GetBrewPath():Promise; + +export function GetConfigPath():Promise; + +export function GetCurrentIPInfo():Promise; + +export function GetDefaults():Promise>; + +export function GetDownloadHistory():Promise>; + +export function GetDownloadProgress():Promise; + +export function GetDownloadQueue():Promise; + +export function GetFetchHistory():Promise>; + +export function GetFileSizes(arg1:Array):Promise>; + +export function GetFlacInfoBatch(arg1:Array):Promise>; + +export function GetPreviewURL(arg1:string):Promise; + +export function GetRecentFetches():Promise; + +export function GetSpotifyMetadata(arg1:main.SpotifyMetadataRequest):Promise; + +export function GetStreamingURLs(arg1:string,arg2:string):Promise; + +export function GetTrackISRC(arg1:string):Promise; + +export function InstallFFmpegWithBrew():Promise; + +export function IsBrewFFmpegInstalled():Promise; + +export function IsFFmpegInstalled():Promise; + +export function IsFFprobeInstalled():Promise; + +export function ListAudioFilesInDir(arg1:string):Promise>; + +export function ListDirectoryFiles(arg1:string):Promise>; + +export function LoadSettings():Promise>; + +export function MarkDownloadItemFailed(arg1:string,arg2:string):Promise; + +export function OpenConfigFolder():Promise; + +export function OpenFolder(arg1:string):Promise; + +export function PreviewRenameFiles(arg1:Array,arg2:string):Promise>; + +export function Quit():Promise; + +export function ReadFileAsBase64(arg1:string):Promise; + +export function ReadFileMetadata(arg1:string):Promise; + +export function ReadImageAsBase64(arg1:string):Promise; + +export function ReadTextFile(arg1:string):Promise; + +export function RenameFileTo(arg1:string,arg2:string):Promise; + +export function RenameFilesByMetadata(arg1:Array,arg2:string):Promise>; + +export function ResampleAudio(arg1:main.ResampleAudioRequest):Promise>; + +export function SaveRecentFetches(arg1:string):Promise; + +export function SaveSettings(arg1:Record):Promise; + +export function SaveSpectrumImage(arg1:string,arg2:string):Promise; + +export function SearchSpotify(arg1:main.SpotifySearchRequest):Promise; + +export function SearchSpotifyByType(arg1:main.SpotifySearchByTypeRequest):Promise>; + +export function SelectAudioFiles():Promise>; + +export function SelectFile():Promise; + +export function SelectFolder(arg1:string):Promise; + +export function SelectImageVideo():Promise>; + +export function SkipDownloadItem(arg1:string,arg2:string):Promise; diff --git a/frontend/wailsjs/go/main/App.js b/frontend/wailsjs/go/main/App.js new file mode 100644 index 0000000..5589d46 --- /dev/null +++ b/frontend/wailsjs/go/main/App.js @@ -0,0 +1,279 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +export function AddFetchHistory(arg1) { + return window['go']['main']['App']['AddFetchHistory'](arg1); +} + +export function AddToDownloadQueue(arg1, arg2, arg3, arg4) { + return window['go']['main']['App']['AddToDownloadQueue'](arg1, arg2, arg3, arg4); +} + +export function CancelAllQueuedItems() { + return window['go']['main']['App']['CancelAllQueuedItems'](); +} + +export function CheckAPIStatus(arg1, arg2) { + return window['go']['main']['App']['CheckAPIStatus'](arg1, arg2); +} + +export function CheckFFmpegInstalled() { + return window['go']['main']['App']['CheckFFmpegInstalled'](); +} + +export function CheckFilesExistence(arg1, arg2, arg3) { + return window['go']['main']['App']['CheckFilesExistence'](arg1, arg2, arg3); +} + +export function CheckTrackAvailability(arg1) { + return window['go']['main']['App']['CheckTrackAvailability'](arg1); +} + +export function ClearAllDownloads() { + return window['go']['main']['App']['ClearAllDownloads'](); +} + +export function ClearCompletedDownloads() { + return window['go']['main']['App']['ClearCompletedDownloads'](); +} + +export function ClearDownloadHistory() { + return window['go']['main']['App']['ClearDownloadHistory'](); +} + +export function ClearFetchHistory() { + return window['go']['main']['App']['ClearFetchHistory'](); +} + +export function ClearFetchHistoryByType(arg1) { + return window['go']['main']['App']['ClearFetchHistoryByType'](arg1); +} + +export function ConvertAudio(arg1) { + return window['go']['main']['App']['ConvertAudio'](arg1); +} + +export function CreateM3U8File(arg1, arg2, arg3) { + return window['go']['main']['App']['CreateM3U8File'](arg1, arg2, arg3); +} + +export function DecodeAudioForAnalysis(arg1) { + return window['go']['main']['App']['DecodeAudioForAnalysis'](arg1); +} + +export function DeleteDownloadHistoryItem(arg1) { + return window['go']['main']['App']['DeleteDownloadHistoryItem'](arg1); +} + +export function DeleteFetchHistoryItem(arg1) { + return window['go']['main']['App']['DeleteFetchHistoryItem'](arg1); +} + +export function DownloadAvatar(arg1) { + return window['go']['main']['App']['DownloadAvatar'](arg1); +} + +export function DownloadCover(arg1) { + return window['go']['main']['App']['DownloadCover'](arg1); +} + +export function DownloadFFmpeg() { + return window['go']['main']['App']['DownloadFFmpeg'](); +} + +export function DownloadGalleryImage(arg1) { + return window['go']['main']['App']['DownloadGalleryImage'](arg1); +} + +export function DownloadHeader(arg1) { + return window['go']['main']['App']['DownloadHeader'](arg1); +} + +export function DownloadLyrics(arg1) { + return window['go']['main']['App']['DownloadLyrics'](arg1); +} + +export function DownloadTrack(arg1) { + return window['go']['main']['App']['DownloadTrack'](arg1); +} + +export function ExportFailedDownloads() { + return window['go']['main']['App']['ExportFailedDownloads'](); +} + +export function GetBrewPath() { + return window['go']['main']['App']['GetBrewPath'](); +} + +export function GetConfigPath() { + return window['go']['main']['App']['GetConfigPath'](); +} + +export function GetCurrentIPInfo() { + return window['go']['main']['App']['GetCurrentIPInfo'](); +} + +export function GetDefaults() { + return window['go']['main']['App']['GetDefaults'](); +} + +export function GetDownloadHistory() { + return window['go']['main']['App']['GetDownloadHistory'](); +} + +export function GetDownloadProgress() { + return window['go']['main']['App']['GetDownloadProgress'](); +} + +export function GetDownloadQueue() { + return window['go']['main']['App']['GetDownloadQueue'](); +} + +export function GetFetchHistory() { + return window['go']['main']['App']['GetFetchHistory'](); +} + +export function GetFileSizes(arg1) { + return window['go']['main']['App']['GetFileSizes'](arg1); +} + +export function GetFlacInfoBatch(arg1) { + return window['go']['main']['App']['GetFlacInfoBatch'](arg1); +} + +export function GetPreviewURL(arg1) { + return window['go']['main']['App']['GetPreviewURL'](arg1); +} + +export function GetRecentFetches() { + return window['go']['main']['App']['GetRecentFetches'](); +} + +export function GetSpotifyMetadata(arg1) { + return window['go']['main']['App']['GetSpotifyMetadata'](arg1); +} + +export function GetStreamingURLs(arg1, arg2) { + return window['go']['main']['App']['GetStreamingURLs'](arg1, arg2); +} + +export function GetTrackISRC(arg1) { + return window['go']['main']['App']['GetTrackISRC'](arg1); +} + +export function InstallFFmpegWithBrew() { + return window['go']['main']['App']['InstallFFmpegWithBrew'](); +} + +export function IsBrewFFmpegInstalled() { + return window['go']['main']['App']['IsBrewFFmpegInstalled'](); +} + +export function IsFFmpegInstalled() { + return window['go']['main']['App']['IsFFmpegInstalled'](); +} + +export function IsFFprobeInstalled() { + return window['go']['main']['App']['IsFFprobeInstalled'](); +} + +export function ListAudioFilesInDir(arg1) { + return window['go']['main']['App']['ListAudioFilesInDir'](arg1); +} + +export function ListDirectoryFiles(arg1) { + return window['go']['main']['App']['ListDirectoryFiles'](arg1); +} + +export function LoadSettings() { + return window['go']['main']['App']['LoadSettings'](); +} + +export function MarkDownloadItemFailed(arg1, arg2) { + return window['go']['main']['App']['MarkDownloadItemFailed'](arg1, arg2); +} + +export function OpenConfigFolder() { + return window['go']['main']['App']['OpenConfigFolder'](); +} + +export function OpenFolder(arg1) { + return window['go']['main']['App']['OpenFolder'](arg1); +} + +export function PreviewRenameFiles(arg1, arg2) { + return window['go']['main']['App']['PreviewRenameFiles'](arg1, arg2); +} + +export function Quit() { + return window['go']['main']['App']['Quit'](); +} + +export function ReadFileAsBase64(arg1) { + return window['go']['main']['App']['ReadFileAsBase64'](arg1); +} + +export function ReadFileMetadata(arg1) { + return window['go']['main']['App']['ReadFileMetadata'](arg1); +} + +export function ReadImageAsBase64(arg1) { + return window['go']['main']['App']['ReadImageAsBase64'](arg1); +} + +export function ReadTextFile(arg1) { + return window['go']['main']['App']['ReadTextFile'](arg1); +} + +export function RenameFileTo(arg1, arg2) { + return window['go']['main']['App']['RenameFileTo'](arg1, arg2); +} + +export function RenameFilesByMetadata(arg1, arg2) { + return window['go']['main']['App']['RenameFilesByMetadata'](arg1, arg2); +} + +export function ResampleAudio(arg1) { + return window['go']['main']['App']['ResampleAudio'](arg1); +} + +export function SaveRecentFetches(arg1) { + return window['go']['main']['App']['SaveRecentFetches'](arg1); +} + +export function SaveSettings(arg1) { + return window['go']['main']['App']['SaveSettings'](arg1); +} + +export function SaveSpectrumImage(arg1, arg2) { + return window['go']['main']['App']['SaveSpectrumImage'](arg1, arg2); +} + +export function SearchSpotify(arg1) { + return window['go']['main']['App']['SearchSpotify'](arg1); +} + +export function SearchSpotifyByType(arg1) { + return window['go']['main']['App']['SearchSpotifyByType'](arg1); +} + +export function SelectAudioFiles() { + return window['go']['main']['App']['SelectAudioFiles'](); +} + +export function SelectFile() { + return window['go']['main']['App']['SelectFile'](); +} + +export function SelectFolder(arg1) { + return window['go']['main']['App']['SelectFolder'](arg1); +} + +export function SelectImageVideo() { + return window['go']['main']['App']['SelectImageVideo'](); +} + +export function SkipDownloadItem(arg1, arg2) { + return window['go']['main']['App']['SkipDownloadItem'](arg1, arg2); +}