Browse Source

change import/export format from json to txt

main
familyfriendlymikey 3 years ago
parent
commit
8d2458d1cf
  1. 67
      app/client.imba

67
app/client.imba

@ -65,9 +65,9 @@ tag app
"instagram `in instagram.com"
"localhost `3000 http://localhost:3000"
]
for link in initial_links
for link_text in initial_links
try
add_link link
add_link link_text
catch e
err "adding link", e
@ -196,9 +196,9 @@ tag app
def create_link_from_text text
text = text.trim!
throw "text is empty" if text is ''
throw "Text is empty." if text is ''
let split_text = text.split(/\s+/)
throw "no url provided" if split_text.length < 2
throw "No url provided." if split_text.length < 2
let url = split_text.pop!
let host
{ href:url, host } = parse_url url
@ -261,7 +261,7 @@ tag app
let new_link = await create_link_from_text new_link_text
new_link.frequency = old_link.frequency
let result = await db.links.update old_link.id, new_link
throw "link id not found" if result is 0
throw "Link id not found." if result is 0
await reload_db!
imba.commit!
p omit(old_link, "icon")
@ -336,7 +336,7 @@ tag app
link.is_pinned = !link.is_pinned
try
let result = await db.links.update link.id, link
throw "link id not found" if result is 0
throw "Link id not found." if result is 0
catch e
return err "pinning link", e
await reload_db!
@ -401,40 +401,53 @@ tag app
selection_index = 0
sort_links!
def name_exists new_name
state.links.some! do |{name}| new_name is name
def handle_click_import e
def handle_import
let errors = []
try
let text = await e.target.files[0].text!
var links = text.split "\n"
catch e
return err "importing db", e
for link_text in links
try
let link = await create_link_from_text link_text
if name_exists link.name
throw "Name already exists, add manually if you don't mind duplicates."
add_link link_text
catch e
errors.push "{link_text}\n{e}"
if errors.length > 0
err "importing some links", errors.join("\n\n")
loading = yes
let id_exists = do |newid|
state.links.some! do |{id}| newid is id
let filter = do |table, value, key|
table is 'links' and not id_exists value.id
try
await reload_db!
await db.import(e.target.files[0], { filter })
await reload_db!
catch e
err "importing db", e
await handle_import!
settings_active = no
loading = no
get math_result
try
let result = Number(eval_math state.query)
throw _ if isNaN result
result
catch
no
def handle_click_export
loading = yes
await reload_db!
let links = state.links.map do |link|
construct_link_text link
let datetime = new Date!.toString!.split(" ")
let date = datetime.slice(1, 4).join("-").toLowerCase!
let time = datetime[4].split(":").join("-")
let filename = "fuzzyhome_v{version}_{date}_{time}.json"
const blob = await db.export({ prettyJson: yes })
download(blob, filename, "application/json")
let filename = "fuzzyhome_v{version}_{date}_{time}.txt"
download(links.join("\n"), filename, "text/plain")
settings_active = no
loading = no
get math_result
try
let result = Number(eval_math state.query)
throw _ if isNaN result
result
catch
no
def handle_click_github
global.location.href = "https://github.com/familyfriendlymikey/fuzzyhome"

Loading…
Cancel
Save