com.techcavern.wavetact.consoleCommands.config.Blacklist.java Source code

Java tutorial

Introduction

Here is the source code for com.techcavern.wavetact.consoleCommands.config.Blacklist.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.techcavern.wavetact.consoleCommands.config;

import com.techcavern.wavetact.annot.ConCMD;
import com.techcavern.wavetact.objects.CommandIO;
import com.techcavern.wavetact.objects.ConsoleCommand;
import com.techcavern.wavetact.utils.DatabaseUtils;
import com.techcavern.wavetact.utils.GeneralUtils;
import org.apache.commons.lang3.StringUtils;
import org.jooq.Record;

import java.util.HashSet;
import java.util.Set;
import java.util.Set;

import static com.techcavern.wavetactdb.Tables.BLACKLISTS;

/**
 * @author jztech101
 */
@ConCMD
public class Blacklist extends ConsoleCommand {

    public Blacklist() {
        super(GeneralUtils.toArray("blacklist bl"), "blacklist [type] (-)[blacklist Url]",
                "Adds/removes domains from blacklist database");
    }

    @Override
    public void onCommand(String command, String[] args, CommandIO commandIO) {
        if (args.length > 0) {
            if (args[1].startsWith("-")) {
                Record blacklist = DatabaseUtils.getBlacklist(args[0],
                        args[1].replaceFirst("\\-", "").replaceAll("http://|https://", ""));
                if (blacklist != null) {
                    DatabaseUtils.removeBlacklist(args[0],
                            args[1].replaceFirst("\\-", "").replaceAll("http://|https://", ""));
                    commandIO.getPrintStream().println(args[0] + " blacklist removed");
                } else {
                    commandIO.getPrintStream().println(args[0] + " blacklist does not exist on list");
                }
            } else if (args[1].equalsIgnoreCase("list")) {
                Set<String> blacklists = new HashSet<>();
                for (Record bl : DatabaseUtils.getBlacklists(args[0]))
                    blacklists.add(bl.getValue(BLACKLISTS.URL));
                if (!blacklists.isEmpty()) {
                    commandIO.getPrintStream().println(StringUtils.join(blacklists, ", "));
                } else {
                    commandIO.getPrintStream().println(args[0] + " blacklist is empty");
                }
            } else {
                Record blacklist = DatabaseUtils.getBlacklist(args[0],
                        args[1].replaceFirst("\\-", "").replaceAll("http://|https://", ""));
                if (blacklist == null) {
                    DatabaseUtils.addBlacklist(args[1].replaceFirst("\\-", "").replaceAll("http://|https://", ""),
                            args[0]);
                    commandIO.getPrintStream().println(args[0] + " blacklist added");
                } else {
                    commandIO.getPrintStream().println(args[0] + " blacklist is already listed");
                }
            }
        } else {
            commandIO.getPrintStream().println("Please specify a " + args[0] + " blacklist");
        }
    }
}