Skip to content
This repository has been archived by the owner on Nov 15, 2020. It is now read-only.

Commit

Permalink
refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
imbeerus committed Aug 4, 2020
1 parent fa06f53 commit ddc2804
Show file tree
Hide file tree
Showing 17 changed files with 62 additions and 96 deletions.
2 changes: 2 additions & 0 deletions .idea/line-to-telegram.iml

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

2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ plugins {
}

group 'com.lockwood'
version '1.1.1'
version '1.2.0'

jar {
manifest {
Expand Down
16 changes: 2 additions & 14 deletions src/main/java/com/lockwood/LineToTelegram.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,14 @@ package com.lockwood

import com.lockwood.executor.pack.StickerPackExecutor
import com.lockwood.executor.sticker.StickerPackImageSaver
import com.lockwood.executor.sticker.TelegramImageConverter
import com.lockwood.extensions.*
import com.lockwood.model.StickerPack
import com.lockwood.parser.LineStickerPackParser
import java.util.concurrent.ExecutionException

@ExperimentalStdlibApi
fun main(
args: Array<String>
args: Array<String>
) {

//region Show no args message
Expand Down Expand Up @@ -59,15 +58,6 @@ fun main(
return@forEach
}
//endregion

//region Start prepare Sticker Images for Telegram
try {
TelegramImageConverter(folderName = stickerPack.title, isAnimated = stickerPack.isAnimated).execute()
} catch (e: ExecutionException) {
failedLinks.add(link)
return@forEach
}
//endregion
}
}
//endregion
Expand All @@ -82,10 +72,8 @@ fun main(
val isFullSuccess = failedLinks.isEmpty()
val isHasFails = failedLinks.isNotEmpty()

val currentDirectory = System.getProperty("user.dir")

printDownloadSuccessMessage()
printDownloadPathMessage(currentDirectory)
printDownloadPathMessage(System.getProperty("user.dir"))

if (isFullSuccess) {
return
Expand Down
10 changes: 5 additions & 5 deletions src/main/java/com/lockwood/delegate/NotNullLazy.kt
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@ class NotNullLazy<T> : ReadWriteProperty<Any?, T> {

@Throws(IllegalStateException::class)
override fun getValue(
thisRef: Any?,
property: KProperty<*>
thisRef: Any?,
property: KProperty<*>
): T = notNullValue ?: throw IllegalStateException("${property.name} not init")

@Throws(IllegalStateException::class)
override fun setValue(
thisRef: Any?,
property: KProperty<*>,
value: T
thisRef: Any?,
property: KProperty<*>,
value: T
) {
notNullValue = if (notNullValue == null) {
value
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ import java.util.concurrent.Future

@ExperimentalStdlibApi
class StickerPackExecutor(
private val executor: ExecutorService = networkExecutor,
private val parser: StickerPackParser,
private val link: String
private val executor: ExecutorService = networkExecutor,
private val parser: StickerPackParser,
private val link: String
) : DataExecutor<StickerPack> {

override fun submit(): Future<StickerPack> {
Expand Down
12 changes: 6 additions & 6 deletions src/main/java/com/lockwood/executor/sticker/StickerImageSaver.kt
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,17 @@ import com.lockwood.model.Sticker
import java.util.concurrent.ExecutorService

class StickerImageSaver(
private val executor: ExecutorService = networkExecutor,
private val sticker: Sticker
private val executor: ExecutorService = networkExecutor,
private val sticker: Sticker
) : Executor {

override fun execute() = with(sticker) {
executor.execute {
saveImage(
url = sticker.url,
name = name,
fileExtension = sticker.imageFormat,
directoryName = packTitle
url = sticker.url,
name = name,
fileExtension = sticker.imageFormat,
directoryName = packTitle
)
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
package com.lockwood.executor.sticker

import com.lockwood.executor.Executor
import com.lockwood.extensions.buildStickerPackPath
import com.lockwood.extensions.existInStickerPackDir
import com.lockwood.extensions.makeStickerPackDir
import com.lockwood.extensions.scaleImagesForTelegram
import com.lockwood.model.StickerPack

class StickerPackImageSaver(
private val stickerPack: StickerPack
private val stickerPack: StickerPack
) : Executor {

override fun execute() = with(stickerPack) {
Expand All @@ -16,9 +18,8 @@ class StickerPackImageSaver(
sticker.existInStickerPackDir(stickerPack.title, sticker.imageFormat)
}

stickersToSave.forEach {
StickerImageSaver(sticker = it).execute()
}
stickersToSave.forEach { StickerImageSaver(sticker = it).execute() }
scaleImagesForTelegram(buildStickerPackPath(stickerPack.title))
}

}

This file was deleted.

4 changes: 2 additions & 2 deletions src/main/java/com/lockwood/extensions/BufferedImage.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import java.awt.Image
import java.awt.image.BufferedImage

fun BufferedImage.getScaledInstance(
resultSize: Int
resultSize: Int
): BufferedImage {
val sizePair = getScaledSizePair(resultSize)
val (width: Int, height: Int) = sizePair.run { first to second }
Expand All @@ -21,7 +21,7 @@ fun BufferedImage.getScaledInstance(
}

fun BufferedImage.getScaledSizePair(
resultSize: Int
resultSize: Int
): Pair<Int, Int> {
val width = width
val height = height
Expand Down
20 changes: 10 additions & 10 deletions src/main/java/com/lockwood/extensions/Executors.kt
Original file line number Diff line number Diff line change
Expand Up @@ -10,28 +10,28 @@ var networkExecutor: ExecutorService by notNullLazy()
var ioExecutor: ExecutorService by notNullLazy()

fun newIOExecutor(
minutes: Number
minutes: Number
): ExecutorService {
return ThreadPoolExecutor(
0, 2,
minutes.toLong(), TimeUnit.MINUTES,
LinkedBlockingQueue()
0, 2,
minutes.toLong(), TimeUnit.MINUTES,
LinkedBlockingQueue()
)
}

fun newNetworkExecutor(
minutes: Number
minutes: Number
): ExecutorService {
return ThreadPoolExecutor(
0, 5,
minutes.toLong(), TimeUnit.MINUTES,
LinkedBlockingQueue()
0, 5,
minutes.toLong(), TimeUnit.MINUTES,
LinkedBlockingQueue()
)
}

inline fun awaitTermination(
vararg executor: ExecutorService,
onDone: () -> Unit = {}
vararg executor: ExecutorService,
onDone: () -> Unit = {}
) {
val executorsCount = executor.size

Expand Down
18 changes: 9 additions & 9 deletions src/main/java/com/lockwood/extensions/Image.kt
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ val File.extension: String
get() = name.substringAfterLast(".")

fun scaleImagesForTelegram(
path: String
path: String
) {
val directory = File(path)
directory.walk().forEach { file ->
Expand All @@ -32,10 +32,10 @@ fun scaleImagesForTelegram(
}

fun saveImage(
url: String,
name: String,
fileExtension: String,
directoryName: String
url: String,
name: String,
fileExtension: String,
directoryName: String
) {
val absoluteImagePath = buildString {
appendPath(STICKERS_DIRECTORY)
Expand All @@ -51,8 +51,8 @@ fun saveImage(
}

private fun writeImage(
url: String,
path: String
url: String,
path: String
) {
val readableByteChannel: ReadableByteChannel = Channels.newChannel(URL(url).openStream())

Expand All @@ -62,7 +62,7 @@ private fun writeImage(
}

private fun getResizedImage(
img: BufferedImage
img: BufferedImage
): BufferedImage {
val dimension = getScaledDimension(img)
val tmp = img.getScaledInstance(dimension.width, dimension.height, Image.SCALE_SMOOTH)
Expand All @@ -75,7 +75,7 @@ private fun getResizedImage(
}

private fun getScaledDimension(
img: BufferedImage
img: BufferedImage
): Dimension {
val width = img.width
val height = img.height
Expand Down
8 changes: 4 additions & 4 deletions src/main/java/com/lockwood/extensions/Print.kt
Original file line number Diff line number Diff line change
Expand Up @@ -10,22 +10,22 @@ private const val NOTHING_TO_DOWNLOAD_CAPTION = "You didn't pass any arguments t
private const val CURRENT_THREAD_CAPTION = "Current Thread[%s]: %s"

private const val TELEGRAM_BOT_MESSAGE =
"Now you can use @Stickers bot ($STICKERS_BOT_URL) at Telegram to create sticker packs"
"Now you can use @Stickers bot ($STICKERS_BOT_URL) at Telegram to create sticker packs"

private const val ADD_ISSUE_MESSAGE = "There are some troubles while parsing\n" +
"Check that sticker packs available for your region\n" +
"If it is, add issue to $PROJECT_URL/issues with you sticker packs links\n" +
"Links: %s"

fun printStartMessage(
stickerPackLink: String
stickerPackLink: String
) {
val message = START_DOWNLOAD_CAPTION.format(stickerPackLink)
println(message)
}

fun printDownloadFailedMessage(
links: List<String>
links: List<String>
) {
val linksCaption = links.toString()

Expand All @@ -40,7 +40,7 @@ fun printCurrentThread() {
}

fun printDownloadPathMessage(
path: String
path: String
) {
val message = PATH_DOWNLOAD_CAPTION.format(path)
println(message)
Expand Down
6 changes: 3 additions & 3 deletions src/main/java/com/lockwood/extensions/StringBuilder.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package com.lockwood.extensions
import java.io.File

fun StringBuilder.appendPath(
string: String
string: String
): StringBuilder {
return run {
append(string)
Expand All @@ -12,8 +12,8 @@ fun StringBuilder.appendPath(
}

fun StringBuilder.appendFileName(
name: String,
extension: String
name: String,
extension: String
): StringBuilder {
return run {
append(name)
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/lockwood/extensions/Thread.kt
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ var currentThreadName: String
}

fun switchThreadName(
newThreadName: String
newThreadName: String
) {
currentThreadName = newThreadName
}
10 changes: 5 additions & 5 deletions src/main/java/com/lockwood/model/Sticker.kt
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package com.lockwood.model

class Sticker(
val id: Int,
val url: String,
val imageFormat: String,
val name: String = id.toString(),
val packTitle: String
val id: Int,
val url: String,
val imageFormat: String,
val name: String = id.toString(),
val packTitle: String
) {

override fun toString(): String {
Expand Down
8 changes: 4 additions & 4 deletions src/main/java/com/lockwood/model/StickerPack.kt
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package com.lockwood.model

class StickerPack(
val title: String,
val copyright: String,
val isAnimated: Boolean,
val stickers: Array<Sticker>
val title: String,
val copyright: String,
val isAnimated: Boolean,
val stickers: Array<Sticker>
) {

override fun toString(): String {
Expand Down
3 changes: 0 additions & 3 deletions src/main/java/com/lockwood/parser/LineStickerPackParser.kt
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,7 @@ class LineStickerPackParser : StickerPackParser() {
companion object {

private const val STICKER_SHOP_URL = "https://store.line.me/stickershop"

private const val STATIC_IMAGE_TYPE = "static"
private const val ANIMATION_IMAGE_TYPE = "animation"

private const val DEFAULT_IMAGE_FORMAT = "png"
}

Expand Down

0 comments on commit ddc2804

Please sign in to comment.