/* * Overchan Android (Meta Imageboard Client) * Copyright (C) 2014-2016 miku-nyan <https://github.com/miku-nyan> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package nya.miku.wishmaster.chans.cirno; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import nya.miku.wishmaster.api.models.BoardModel; import nya.miku.wishmaster.api.models.SimpleBoardModel; public class CirnoBoards { private static final String[] ATTACHMENT_FILTERS = new String[] { "jpg", "jpeg", "png", "gif" }; private static final List<String> IICHAN_BOARDS_410 = Arrays.asList("gnx", "int", "ts", "cu", "dev"); private static final List<String> IICHAN_SPOILER_MARK_BOARDS = Arrays.asList("bro", "maid", "med", "tv", "a", "fi", "to", "vn", "vg"); private static final List<BoardModel> LIST_IICHAN = new ArrayList<BoardModel>(); private static final Map<String, BoardModel> MAP_IICHAN = new HashMap<String, BoardModel>(); private static final SimpleBoardModel[] SIMPLE_ARRAY_IICHAN; static { addBoard("d", "Работа сайта", "Обсуждения", "Мод-тян", false); addBoard("au", "Автомобили", "Общее", "Джереми Кларксон", false); addBoard("es", "Бесконечное лето", "Общее", "Пионер", false); addBoard("b", "Бред", "Общее", "Сырно", true); addBoard("vg", "Видеоигры", "Общее", "Марио", false); addBoard("hr", "Высокое разрешение", "Общее", "Аноним", false); addBoard("gf", "gif- и flash-анимация", "Общее", "Аноним", true); //??? addBoard("an", "Живопись", "Общее", "Кот Синкая", false); addBoard("ne", "Животные", "Общее", "Пушок", false); addBoard("tran", "Иностранные языки", "Общее", "Е. Д. Поливанов", false); addBoard("int", "International", "Общее", "Anonymous", false); addBoard("tv", "Кино и ТВ", "Общее", "К. С. Станиславский", false); addBoard("cu", "Кулинария", "Общее", "Аноним", false); addBoard("l", "Литература", "Общее", "Ф. М. Достоевский", false); addBoard("bro", "My Little Pony", "Общее", "Эпплджек", false); addBoard("m", "Картинки-макросы и копипаста", "Общее", "Копипаста-гей", false); addBoard("med", "Медицина", "Общее", "Антон Буслов", false); addBoard("mo", "Мотоциклы", "Общее", "Аноним", false); addBoard("mu", "Музыка", "Общее", "Виктор Цой", false); addBoard("bg", "Настольные игры", "Общее", "Аноним", false); addBoard("sci", "Наука", "Общее", "Гриша Перельман", false); //addBoard("w", "Обои", "Общее", "Аноним", false); addBoard("mi", "Оружие", "Общее", "Й. Швейк", false); addBoard("o", "Оэкаки", "Общее", "Аноним", false); addBoard("x", "Паранормальные явления", "Общее", "Эмма Ай", false); //addBoard("p", "Политика", "Общее", "Аноним", true); //??? addBoard("r", "Просьбы", "Общее", "Аноним", false); addBoard("dev", "Разработка", "Общее", "Стив Балмер", false); addBoard("maid", "Служанки", "Общее", "Госюдзин-сама", false); addBoard("sp", "Спорт", "Общее", "Спортакус", false); addBoard("tr", "Транспорт", "Общее", "Аноним", false); addBoard("tu", "Туризм", "Общее", "Аноним", false); addBoard("ph", "Фото", "Общее", "Аноним", false); addBoard("fr", "Фурри", "Общее", "Аноним", false); addBoard("s", "Электроника и ПО", "Общее", "Чии", false); addBoard("a", "Аниме и манга", "Японская культура", "Мокона", false); addBoard("aa", "Аниме-арт", "Японская культура", "Ракка", false); addBoard("vn", "Визуальные новеллы", "Японская культура", "Сэйбер", false); addBoard("vo", "Vocaloid", "Японская культура", "", false); //hatsune addBoard("gnx", "Gainax", "Японская культура", "Ноно", false); addBoard("abe", "ёситоси абэ", "Японская культура", "Chada", false); addBoard("c", "Косплей", "Японская культура", "Аноним", false); addBoard("ls", "Lucky☆Star", "Японская культура", "Цукаса", false); //addBoard("ma", "Манга", "Японская культура", "Иноуэ Орихимэ", false); addBoard("rm", "Rozen Maiden", "Японская культура", "Суйгинто", false); addBoard("tan", "Сетевые персонажи", "Японская культура", "Уныл-тян", false); addBoard("sos", "Suzumiya Haruhi no Yūutsu", "Японская культура", "Кёнко", false); addBoard("to", "Touhou", "Японская культура", "Нитори", false); addBoard("fi", "Фигурки", "Японская культура", "Фигурка анонима", false); addBoard("hau", "Higurashi no Naku Koro ni", "Японская культура", "Ханю", false); addBoard("ts", "Цундере", "Японская культура", "Baka Inu", false); addBoard("jp", "Япония", "Японская культура", "名無しさん", false); SIMPLE_ARRAY_IICHAN = new SimpleBoardModel[LIST_IICHAN.size()]; for (int i=0; i<LIST_IICHAN.size(); ++i) SIMPLE_ARRAY_IICHAN[i] = new SimpleBoardModel(LIST_IICHAN.get(i)); } static BoardModel getBoard(String boardName) { BoardModel board = MAP_IICHAN.get(boardName); if (board == null) return createDefaultBoardModel(boardName, boardName, null, "Аноним", false); return board; } static SimpleBoardModel[] getBoardsList() { return SIMPLE_ARRAY_IICHAN; } static boolean is410Board(String boardName) { return IICHAN_BOARDS_410.indexOf(boardName) != -1; } private static void addBoard(String name, String description, String category, String defaultPosterName, boolean nsfw) { BoardModel model = createDefaultBoardModel(name, description, category, defaultPosterName, nsfw); LIST_IICHAN.add(model); MAP_IICHAN.put(name, model); } private static BoardModel createDefaultBoardModel(String name, String description, String category, String defaultPosterName, boolean nsfw) { BoardModel model = new BoardModel(); model.chan = CirnoModule.IICHAN_NAME; model.boardName = name; model.boardDescription = description; model.boardCategory = category; model.nsfw = nsfw; model.uniqueAttachmentNames = true; model.timeZoneId = "GMT+3"; model.defaultUserName = defaultPosterName; model.bumpLimit = 500; model.readonlyBoard = name.equals("o") || name.equals("w") || name.equals("abe") || name.equals("ma"); model.requiredFileForNewThread = !name.equals("d"); model.allowDeletePosts = true; model.allowDeleteFiles = true; model.allowReport = BoardModel.REPORT_WITH_COMMENT; model.allowNames = !name.equals("b") && !name.equals("bro"); model.allowSubjects = true; model.allowSage = false; model.allowEmails = true; model.ignoreEmailIfSage = false; model.allowCustomMark = IICHAN_SPOILER_MARK_BOARDS.indexOf(name) != -1; model.customMarkDescription = "Spoiler"; model.allowRandomHash = true; model.allowIcons = false; model.attachmentsMaxCount = name.equals("d") ? 0 : 1; model.attachmentsFormatFilters = ATTACHMENT_FILTERS; model.markType = BoardModel.MARK_WAKABAMARK; model.firstPage = 0; model.lastPage = BoardModel.LAST_PAGE_UNDEFINED; model.catalogAllowed = !name.equals("d"); return model; } }