| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -21,14 +21,31 @@ tag app | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						def mount | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$input.focus! | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							state.links = await db.reload! | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							state.scored_links = state.links | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							sort_links! | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						def reload_db | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							state.links = await db.reload! | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							state.scored_links = fzy state.links, state.query | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						def navigate link | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							link.last_modified = Date.now! | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							link.frequency = (link.frequency or 0) + 1 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							await db.put link | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							window.location.href = link.link | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						def sort_links | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if state.query.trim!.length > 0 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								state.scored_links = fzy state.links, state.query | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							else | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								state.scored_links = sortBy(state.links) do |link| | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									-link.frequency | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						def handle_click_link link | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							navigate link | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						def handle_return | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							window.location.href = state.scored_links[0].link | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							return if state.scored_links.length < 1 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							navigate state.scored_links[0] | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						def handle_shift_return | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							window.location.href = 'https://www.google.com/search?q=' + state.query | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -46,13 +63,15 @@ tag app | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							return if split_query.length < 2 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							let link = split_query.pop! | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							let name = split_query.join(" ") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							let frequency = 1 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							let last_modified = Date.now! | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							return if name_exists name | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							await db.put { name, link } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							await db.put { name, link, frequency, last_modified } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							state.query = '' | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							reload_db! | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						def handle_input | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							state.scored_links = fzy state.links, state.query | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							sort_links! | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						def handle_click_delete | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							let link = state.scored_links[0] | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -128,7 +147,7 @@ tag app | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									@input=handle_input | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								<.links> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									for { name, link } in state.scored_links | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										<a href=link> name | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									for obj in state.scored_links | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										<a href=obj.link @click.prevent=handle_click_link(obj)> obj.name | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					imba.mount <app> | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
					 | 
				
				 | 
				
					
  |