/* * 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.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import nya.miku.wishmaster.api.models.BoardModel; import nya.miku.wishmaster.api.models.SimpleBoardModel; public class Chan410Boards { static final Set<String> ALL_BOARDS_SET = new HashSet<String>(Arrays.asList(new String[] { "b", "int", "cu", "dev", "r", "a", "ts", "tm", "gnx", "ci" })); private static final String[] ATTACHMENT_FILTERS = new String[] { "jpg", "jpeg", "png", "gif" }; private static final String[] ATTACHMENT_FILTERS_B = new String[] { "jpg", "jpeg", "png", "gif", "ass", "srt", "ssa" }; private static final String[] ATTACHMENT_FILTERS_A = new String[] { "jpg", "jpeg", "png", "gif", "pdf" }; private static final String[] ATTACHMENT_FILTERS_DEV = new String[] { "jpg", "jpeg", "png", "gif", "7z", "bz", "bz2", "gz", "mo", "mp3", "ogg", "pdf", "psd", "rar", "svg", "swf", "txt", "xcf", "zip" }; private static final List<BoardModel> LIST = new ArrayList<BoardModel>(); private static final Map<String, BoardModel> MAP = new HashMap<String, BoardModel>(); private static final SimpleBoardModel[] SIMPLE_ARRAY; static { addBoard("b", "Авто/b/ус", "Общее", "Пассажир", true); addBoard("int", "International", "Общее", "Anonymous", false); addBoard("cu", "Кулинария", "Общее", "Аноним", false); addBoard("dev", "Разработка", "Общее", "Стив Балмер", false); addBoard("r", "Радио 410", "Радио", "Аноним", false); addBoard("a", "Аниме и манга", "Аниме", "Аноним", false); addBoard("ts", "Цундере", "Аниме", "Baka Inu", false); addBoard("tm", "Type-Moon", "Аниме", "Шики", false); addBoard("gnx", "Gainax", "На пробу", "Ноно", false); addBoard("ci", "Городская жизнь", "На пробу", "Аноним", false); SIMPLE_ARRAY = new SimpleBoardModel[LIST.size()]; for (int i=0; i<LIST.size(); ++i) SIMPLE_ARRAY[i] = new SimpleBoardModel(LIST.get(i)); } static BoardModel getBoard(String boardName) { BoardModel board = MAP.get(boardName); if (board == null) return createDefaultBoardModel(boardName, boardName, null, "Аноним", false); return board; } static SimpleBoardModel[] getBoardsList() { return SIMPLE_ARRAY; } private static void addBoard(String name, String description, String category, String defaultPosterName, boolean nsfw) { BoardModel model = createDefaultBoardModel(name, description, category, defaultPosterName, nsfw); LIST.add(model); MAP.put(name, model); } private static BoardModel createDefaultBoardModel(String name, String description, String category, String defaultPosterName, boolean nsfw) { BoardModel model = new BoardModel(); model.chan = Chan410Module.CHAN410_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 = false; model.requiredFileForNewThread = true; model.allowDeletePosts = true; model.allowDeleteFiles = true; model.allowReport = BoardModel.REPORT_SIMPLE; model.allowNames = !name.equals("b"); model.allowSubjects = true; model.allowSage = true; model.allowEmails = false; model.ignoreEmailIfSage = false; model.allowCustomMark = false; model.allowRandomHash = true; model.allowIcons = false; model.attachmentsMaxCount = 1; if (name.equals("b")) model.attachmentsFormatFilters = ATTACHMENT_FILTERS_B; else if (name.equals("a")) model.attachmentsFormatFilters = ATTACHMENT_FILTERS_A; else if (name.equals("dev")) model.attachmentsFormatFilters = ATTACHMENT_FILTERS_DEV; else model.attachmentsFormatFilters = ATTACHMENT_FILTERS; model.markType = BoardModel.MARK_WAKABAMARK; model.firstPage = 0; model.lastPage = BoardModel.LAST_PAGE_UNDEFINED; return model; } }