Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
3a0c57a
Init commit
Feb 18, 2023
8777f8e
Init commit kotlin
Feb 18, 2023
8a12ec8
Add ktor version with getting links and backlinks
eqimd Feb 19, 2023
37cc469
Add dumb version
eqimd Mar 3, 2023
cfeb3b1
Add0 rateLimiter
Mar 3, 2023
d8d8a7e
Add received responses count
eqimd Mar 3, 2023
955e83e
Take out serialization
eqimd Mar 3, 2023
46c801c
Edit method
Mar 3, 2023
e253b36
Add context
eqimd Mar 3, 2023
08fb2d7
Edit method
Mar 3, 2023
486e858
Create REEDME.md
sh-ad Jun 20, 2023
e02c9a7
Merge pull request #2 from point-rar/sh-ad-patch-1
sh-ad Jun 20, 2023
75d3bd0
Rename REEDME.md to README.md
sh-ad Jun 20, 2023
488e1c8
Merge pull request #1 from point-rar/feature/wikigame-coroutines
sh-ad Jul 14, 2023
5398427
Some fixes
eqimd Jul 21, 2023
ace722a
time
eqimd Jul 21, 2023
38b250b
fix
eqimd Jul 21, 2023
026162b
Create REEDME.md
sh-ad Jun 20, 2023
0d70b6c
Rename REEDME.md to README.md
sh-ad Jun 20, 2023
25bc934
CompletableFuture
Jul 21, 2023
c740dbc
Fix getResultPath
Jul 21, 2023
d12648f
fixes
eqimd Jul 21, 2023
548eb5a
some more
eqimd Jul 21, 2023
1890b3f
Add Loom
Jul 21, 2023
044df7d
Fix structure
Jul 31, 2023
9209455
fatJar
eqimd Jul 31, 2023
101e6a7
Fix dependency
Jul 31, 2023
ff074b4
Executors
Aug 20, 2023
5199e97
Fix rateLimiter
Aug 20, 2023
ae19b99
Fix preview
Aug 21, 2023
e79012a
Update README.md
sh-ad Aug 21, 2023
a323dbf
Merge branch 'main' into feature/wikigame-optimize
eqimd Aug 21, 2023
2a536b9
Merge pull request #3 from point-rar/feature/wikigame-optimize
eqimd Aug 21, 2023
b68d2a8
all gradle
eqimd Sep 2, 2023
36ee109
rm
eqimd Sep 2, 2023
0e1a572
move out wiki remote source
eqimd Sep 5, 2023
438f2f3
algo two way
eqimd Sep 7, 2023
365543f
fix page repeat
eqimd Sep 7, 2023
cd8f3e7
limiter + fix
eqimd Sep 8, 2023
f3e1c0f
refactor
eqimd Sep 8, 2023
99dc5f9
one module
eqimd Sep 8, 2023
e9a4cd7
fix
eqimd Sep 8, 2023
cb4b80b
add loom impl
eqimd Sep 8, 2023
68267ac
algo loom part tbd
eqimd Sep 19, 2023
cbc8011
Working Loom two-way algo version
eqimd Sep 19, 2023
53bf4cc
Comment
eqimd Sep 19, 2023
5e7c7f2
Merge pull request #4 from point-rar/one_module
sh-ad Sep 24, 2023
31ac095
Some refactoring
eqimd Sep 29, 2023
6cecfff
Structured concurrency
eqimd Oct 1, 2023
4005764
Incubator module
eqimd Oct 1, 2023
ac04958
Structured concurrency for LoomAlgoImpl + refactor
eqimd Oct 1, 2023
03ffb8f
Refactor
eqimd Oct 1, 2023
be0f610
Interfaces
eqimd Oct 1, 2023
8081b0e
Cached thread pool
eqimd Oct 2, 2023
1c287bd
Refactor
eqimd Oct 2, 2023
2fb93d8
Refactor
eqimd Oct 2, 2023
0bf4f06
Merge pull request #6 from point-rar/interfaces
sh-ad Oct 3, 2023
c90c1f5
Add DB
Oct 5, 2023
d818d17
Fix executors
eqimd Oct 7, 2023
793e680
Fix SQL request
Oct 7, 2023
a612623
Fix SQL request
Oct 8, 2023
76beac2
Readme
eqimd Oct 9, 2023
49147fd
Readme
eqimd Oct 9, 2023
a6f44a9
add ReactorAlgoWikiGameImpl
vladikM Oct 15, 2023
efa5eaf
Merge pull request #7 from vladikM/main
sh-ad Jan 11, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,10 @@

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

.idea*
.gradle*
build*
build/*
gradle

20 changes: 20 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Thread Wars: Войны клонов на страницах Wiki

### Чат книжного клуба .rar
https://t.me/point_rar_chat

### Правила
Описаны тут: https://telegra.ph/WikiGame-10-07

### Что тут есть
В исходниках Java, в папке `repository`, лежит интерфейс `WikiGame` -- его нужно реализовать.

Рядом с этим интерфейсом лежат разные реализации этого интерфейса -- начиная от `Executors`, и заканчивая алгоритмическим решением на `Loom`.

В исходниках для Kotlin лежит реализация с корутинами.

### Как работать
Нужно форкнуть себе репозиторий, написать решение, и сделать PR в `main`-ветку.

### Полезное
Дампы ру-википедии для MySQL: https://dumps.wikimedia.org/ruwiki/latest/
64 changes: 64 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
plugins {
id("java")
kotlin("jvm") version "1.9.10"
kotlin("plugin.serialization") version "1.9.10"
}

group = "point.rar"
version = "1.0-SNAPSHOT"

repositories {
mavenCentral()
}

dependencies {
testImplementation(platform("org.junit:junit-bom:5.9.1"))
testImplementation("org.junit.jupiter:junit-jupiter")
implementation(kotlin("stdlib-jdk8"))

implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-jdk9:1.7.3")

val kotlinx_serialization_json_version = "1.4.1"
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:$kotlinx_serialization_json_version")

implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.14.2")
implementation("org.apache.httpcomponents:httpclient:4.5.13")

val ktor_version = "2.2.3"
implementation("io.ktor:ktor-client-core:$ktor_version")
implementation("io.ktor:ktor-client-cio:$ktor_version")
implementation("io.ktor:ktor-client-content-negotiation:$ktor_version")
implementation("io.ktor:ktor-serialization-kotlinx-json:$ktor_version")

val slf4j_version = "2.0.6"
implementation("org.slf4j:slf4j-api:$slf4j_version")
implementation("org.slf4j:slf4j-simple:$slf4j_version")

val resilience4jVersion = "2.1.0"
implementation("io.github.resilience4j:resilience4j-kotlin:${resilience4jVersion}")
implementation("io.github.resilience4j:resilience4j-retry:${resilience4jVersion}")
implementation("io.github.resilience4j:resilience4j-timelimiter:${resilience4jVersion}")
implementation("io.github.resilience4j:resilience4j-ratelimiter:${resilience4jVersion}")

implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.14.2")
implementation("org.apache.httpcomponents:httpclient:4.5.13")
implementation("io.github.resilience4j:resilience4j-timelimiter:2.1.0")
implementation("io.github.resilience4j:resilience4j-ratelimiter:2.1.0")

implementation("io.projectreactor:reactor-core:3.5.10")

// mysql
val jasyncVersion = "2.2.0"
implementation("com.github.jasync-sql:jasync-mysql:${jasyncVersion}")
}

tasks.test {
useJUnitPlatform()
}
tasks.withType<JavaCompile> {
options.compilerArgs.addAll(listOf("--enable-preview", "--add-modules", "jdk.incubator.concurrent"))
}
kotlin {
jvmToolchain(19)
}
248 changes: 248 additions & 0 deletions gradlew

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading