package com.yausername.youtubedl_android class YoutubeDLRequest { private val urls: List private val options = YoutubeDLOptions() private val customCommandList: MutableList = ArrayList() constructor(url: String) { urls = listOf(url) } constructor(urls: List) { this.urls = urls } fun addOption(option: String, argument: String): YoutubeDLRequest { options.addOption(option, argument) return this } fun addOption(option: String, argument: Number): YoutubeDLRequest { options.addOption(option, argument) return this } fun addOption(option: String): YoutubeDLRequest { options.addOption(option) return this } fun addCommands(commands: List): YoutubeDLRequest { customCommandList.addAll(commands) return this } fun getOption(option: String): String? { return options.getArgument(option) } fun getArguments(option: String): List? { return options.getArguments(option) } fun hasOption(option: String): Boolean { return options.hasOption(option) } fun buildCommand(): List { val commandList: MutableList = ArrayList() commandList.addAll(options.buildOptions()) commandList.addAll(customCommandList) commandList.addAll(urls) return commandList } }