Skip to content

Instantly share code, notes, and snippets.

@megafarad
megafarad / Document.scala
Created April 16, 2024 23:32
Document for Slick-pg example
package models
import utils.StringUtils
case class Document(id: Option[Long], content: String) {
lazy val abbreviatedContent: String = StringUtils.ellipses(content, 100)
}
@megafarad
megafarad / 1.sql
Created April 16, 2024 23:09
Slick Evolutions Script for Slick-pg example project.
# --- !Ups
CREATE SCHEMA app;
CREATE TABLE app.document (
id BIGSERIAL NOT NULL PRIMARY KEY,
content TEXT,
search_field tsvector
);
package com.megafarad.omoiomoi.binders
import play.api.mvc.QueryStringBindable
import java.time.format.DateTimeParseException
import java.time.zone.ZoneRulesException
import java.time.{LocalDate, ZoneId}
object CustomBinders {
implicit def localDateBinder(implicit stringBinder: QueryStringBindable[String]): QueryStringBindable[LocalDate] = new QueryStringBindable[LocalDate] {
package com.megafarad.omoiomoi.controllers
import com.megafarad.omoiomoi.auth.AuthAction
import com.megafarad.omoiomoi.dao.MeetingDAO
import com.megafarad.omoiomoi.model.Meeting._
import com.megafarad.omoiomoi.model.MeetingEvent._
import com.megafarad.omoiomoi.model.{Meeting, MeetingEvent, Page, SearchResult}
import play.api._
import play.api.cache.AsyncCacheApi
package com.megafarad.omoiomoi.dao
import com.megafarad.omoiomoi.model._
import com.megafarad.omoiomoi.model.MeetingEvent._
import play.api.db.slick._
import play.api.libs.json.Json
import slick.jdbc.JdbcProfile
import java.time.{Instant, LocalDate, LocalTime, ZoneId, ZonedDateTime}
import java.util.UUID
package com.megafarad.omoiomoi.model
import play.api.libs.json._
import play.api.libs.functional.syntax._
import java.time.Instant
sealed trait MeetingEvent
case class BlankEvent(roomName: String) extends MeetingEvent
case class StartEvent(roomName: String, timestamp: Instant) extends MeetingEvent
package org.jitsi.jigasi.transcription;
import org.eclipse.jetty.websocket.api.*;
import org.eclipse.jetty.websocket.api.annotations.*;
import org.eclipse.jetty.websocket.client.*;
import org.json.*;
import org.jitsi.jigasi.*;
import org.jitsi.utils.logging.*;
import java.io.*;
package com.megafarad.jmdictapi
import akka.actor._
import akka.actor.typed.scaladsl.adapter._
import akka.http.scaladsl.Http
import com.megafarad.jmdictapi.api.SearchRoutes
import com.megafarad.jmdictapi.importer.Importer
import com.typesafe.akka.extension.quartz.QuartzSchedulerTypedExtension
import com.typesafe.scalalogging.StrictLogging
package com.megafarad.jmdictapi.importer
import akka.Done
import akka.actor.typed._
import akka.actor.typed.scaladsl._
import akka.http.scaladsl.Http
import akka.http.scaladsl.model.{HttpRequest, HttpResponse, Uri}
import akka.stream.{IOResult, Materializer}
import akka.stream.scaladsl.{FileIO, Sink, Source}
import com.megafarad.jmdictapi.model.Entry
@megafarad
megafarad / search_results.json
Created October 8, 2022 03:46
JMdict-api search results
[
{
"ent_seq": 1467640,
"k_ele": [
{
"keb": "猫",
"ke_inf": null,
"ke_pri": [
"ichi1",
"news1",