Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.bogdan.codeforceswatcher.util
- import kotlinx.coroutines.GlobalScope
- import kotlinx.coroutines.launch
- import java.io.BufferedReader
- import java.io.InputStreamReader
- import java.net.HttpURLConnection
- import java.net.URL
- import java.sql.DriverManager.println
- import java.util.*
- import java.util.regex.Pattern
- /*
- * hello,karankapoor:)
- * I am AnswerNotFound.
- * this Java program helps you find all tags in codeforces
- */
- object FindAllTags {
- private val set = HashSet<String>()
- fun getContent(urlString: String): String {
- println("getContent")
- val url = URL(urlString)
- val urlConnection = url.openConnection() as HttpURLConnection
- val reader = BufferedReader(InputStreamReader(urlConnection.inputStream))
- var line: String?
- var ans = ""
- line = reader.readLine()
- while (line != null) {
- ans += line + "\n"
- line = reader.readLine()
- }
- return ans
- }
- fun getKeywords(content: String): ArrayList<String> {
- println("getKeywords")
- val list = ArrayList<String>()
- val pattern = Pattern.compile("<a href=\"/problemset?tags=[^,]")
- val matcher = pattern.matcher(content)
- while (matcher.find()) {
- var tag = matcher.group()
- tag = tag.substring(26, tag.length - 1)
- list.add(tag)
- }
- return list
- }
- @Throws(Exception::class)
- fun solve() {
- //GlobalScope.launch {
- val lastPage = "<a href=\"/problemset/problem/1/A\">"
- for (i in 1..1000) {
- val urlString = "http://codeforces.com/problemset/page/$i"
- val content = getContent(urlString)
- val list = getKeywords(content)
- for (s in list) {
- set.add(s)
- }
- if (content.contains(lastPage)) {
- kotlin.io.println("page stop at $i");
- break
- }
- println("i $i")
- }
- kotlin.io.println("here are " + set.size + " tags on codeforces now. they are:")
- for (tag in set) {
- print("$tag,")
- }
- //}
- }
- @JvmStatic
- fun main(args: Array<String>) {
- solve()
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement