public static void loadAll(String path) { int i = 1; try { Logger.info("曲リストの読み込みを開始します。: %s", path); URLConnection con = new URL(path).openConnection(); // con.setReadTimeout(10000); // con.setConnectTimeout(10000); con.connect(); BufferedReader r = new BufferedReader(new InputStreamReader(con.getInputStream(), "Windows-31J")); while (true) { String input = r.readLine(); if (input == null) break; // Matcher m = Song.matcher(line); // if (m.find()) if (Song.matches(input)) { // Logger.info("[%d] %s", i, line); // Matcher m2 = p2.matcher(line); // if (m2.find()) // { // Song song = new Song(); // song.hot = m2.group(1); // song.isHot = song.hot != null && song.hot.length() > 0; // song.tid = m2.group(2); // song.title = m2.group(3); // song.artist = m2.group(4); // song.groups = m2.group(5); // song.keywords = line; // song.save(); // } Song song = new Song(); song.load(input); } if (i % 1000 == 0) Logger.info("%d loaded.", i); i++; // if (i == 10) break; } Logger.info("%,d 曲のデータが見つかりました。", i); } catch (IOException x) { throw new IllegalArgumentException(String.format("%,d 行目にエラーがあります。", i), x); } }
public static List<Song> byKeywords(String keywords) { try { List<Song> songs = Song.find("byKeywordsIlike", "%" + keywords + "%").fetch(); return songs; } catch (Exception x) { Logger.warn(x, "曲リストの準備中です。"); return null; } }
public static List<Song> byKeywords(String keywords, boolean isVocaloid, boolean isToho) { try { List<Song> songs = Song.find( "byKeywordsIlikeAndIsVocaloidAndIsToho", "%" + keywords + "%", isVocaloid, isToho) .fetch(); return songs; } catch (Exception x) { Logger.warn(x, "曲リストの準備中です。"); return null; } }