Example Bare Minimum Simple Telegram Client Java - OTR/Kotlin-Telegram-Client GitHub Wiki
The following example was taken from Java example by TD Light Team, but all the Handlers were removed. So the client just successfully logs in and does nothing.
package com.example;
import it.tdlight.client.APIToken;
import it.tdlight.client.AuthenticationData;
import it.tdlight.client.SimpleTelegramClient;
import it.tdlight.client.TDLibSettings;
import it.tdlight.common.Init;
import it.tdlight.common.utils.CantLoadLibrary;
import java.nio.file.Paths;
public class Minimal {
private static SimpleTelegramClient client;
public static void main(String[] args) throws CantLoadLibrary, InterruptedException {
Init.start();
var apiToken = APIToken.example();
var settings = TDLibSettings.create(apiToken);
var sessionPath = Paths.get("");
settings.setDatabaseDirectoryPath(sessionPath.resolve("tdlib"));
settings.setDownloadedFilesDirectoryPath(sessionPath.resolve("downloads"));
client = new SimpleTelegramClient(settings);
var authenticationData = AuthenticationData.consoleLogin();
client.start(authenticationData);
client.waitForExit();
}
}
The same example but automatically converted from Java to Kotlin via IntelliJ IDEA (or Android Studio)
package com.example
import it.tdlight.client.APIToken
import it.tdlight.client.AuthenticationData
import it.tdlight.client.SimpleTelegramClient
import it.tdlight.client.TDLibSettings
import it.tdlight.common.Init
import it.tdlight.common.utils.CantLoadLibrary
import java.nio.file.Paths
object Minimal {
private var client: SimpleTelegramClient? = null
@Throws(CantLoadLibrary::class, InterruptedException::class)
@JvmStatic
fun main(args: Array<String>) {
Init.start()
val apiToken = APIToken.example()
val settings = TDLibSettings.create(apiToken)
val sessionPath = Paths.get("")
settings.databaseDirectoryPath = sessionPath.resolve("tdlib")
settings.downloadedFilesDirectoryPath = sessionPath.resolve("downloads")
client = SimpleTelegramClient(settings)
val authenticationData = AuthenticationData.consoleLogin()
client!!.start(authenticationData)
client!!.waitForExit()
}
}
The same example but manually corrected and sinplified after conversion:
package com.example
import it.tdlight.client.APIToken
import it.tdlight.client.AuthenticationData
import it.tdlight.client.SimpleTelegramClient
import it.tdlight.client.TDLibSettings
import it.tdlight.common.Init
import kotlin.io.path.Path
fun main(args: Array<String>) {
Init.start()
val client: SimpleTelegramClient = SimpleTelegramClient(
TDLibSettings.create(APIToken.example()).apply {
databaseDirectoryPath = Path("").resolve("tdlib")
}
)
client.start(AuthenticationData.consoleLogin())
client.waitForExit()
}