Open estevez-dev opened 3 years ago
Hello. I assume this issue is related to the work of the retrofit library as described in #8. I can advise you to try using the build flag LIBERICA_IMAGE_VARIANT=full
Thanks, @ijo42, it helped, but not completely.
Now there is no error and there is an Attempting to save cache...
when there is an update found. But still no message in Discord. I've created a webhook for the channel and copied the channel id. Here is my bot.conf
where 84000000000000
is a channel id and xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
is a webhook token from webhook URL:
# Don´t change this! Used internally to backup and reset the config if needed!
ver = 5
# Provide some CurseForge project IDs you want the bot to listen to
#
# Role ID doesn't have to be set, if its not don't include second ;;
# NOTE: Role ID can only be set if a channel id is set as well
# NOTE 2: channelId must me grabbed from DISCORD WEBHOOK
# e.g. https://discord.com/api/webhooks/xxx/zzzz
# which xxx is channel id, zzzz is webhook token
ids = [
# Questie
"334372;;84000000000000;;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
# Bagnon
"1592;;84000000000000;;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
# Combuctor
"15947;;84000000000000;;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
# AtlasLootClassic
"326516;;84000000000000;;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
# CraftPresence
"457334;;84000000000000;;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
]
## UPDATE MESSAGE OPTIONS ##
# Provide a language syntax name to have the changelog formatted inside the embedded message for easier viewing if desired.
#
# Can be very useful if project owner/author uses discord Markdown formatting in their changelog
# Uploads as plain text if not changed (example: yml, md, css) Only choose one syntax
changelogDiscordFormat = "md"
# This sets the text that appears as the message description in the update notification
# (the text directly under the project name which is the message title)
#
# This can adhere to discord markdown rules but due to how the message is formatted as a whole, keep this
# message under 250 characters
messageDescription = "New file detected for CurseForge addon"
# Sets the message to include a download link for the new project file
#
# Use the following 3 options only to set the link
# "direct" = Direct link to download the file
# "curse" = Link to the file download page on curseforge.com
# "nolink" = Do not include a download link
updateFileLink = "CURSE"
# If you want the message to mention a particular role when a update message is sent, add the Role ID here
#
# You may provide custom image by URL into Message Footer
mentionRole = 000000000
footerImage = ""
Most likely, you took the channel id from the context menu. In the config, you must specify the channel id from the webhook url. as described in NOTE 2
Yep, that was the case, thanks!
One last question. Could I use my own bot or change the current bot name from Update Detector
to something else? I thought it would be the name of webhook.
The bot username is hardcoded, which is definitely a bad practice. I'll take a note to fix it https://github.com/ijo42/CurseForge2Discord/blob/3ba3ddd4c6bb05fd0475672b0ac4c8ca5e731e98/src/main/java/de/erdbeerbaerlp/curseforge/EmbedMessage.java#L142
Nice! Thanks a lot!
So it was working only the first time when I started a container. The bot loaded a cache and found an outdated addon. The message was sent and the cache was updated. But then:
at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:94),
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142),
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:43),
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142),
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117),
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:94),
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142),
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117),
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93),
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142),
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:88),
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142),
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117),
at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:229),
at okhttp3.RealCall.execute(RealCall.java:81),
at retrofit2.OkHttpCall.execute(OkHttpCall.java:204),
at io.github.resilience4j.retrofit.RetrofitCircuitBreaker$CircuitBreakingCall.execute(RetrofitCircuitBreaker.java:114),
at com.therandomlabs.curseapi.util.RetrofitUtils.lambda$execute$39f5113e$1(RetrofitUtils.java:99),
at io.github.resilience4j.retry.Retry.lambda$decorateCheckedSupplier$3f69f149$1(Retry.java:137),
at io.vavr.control.Try.of(Try.java:75),
at com.therandomlabs.curseapi.util.RetrofitUtils.execute(RetrofitUtils.java:98),
... 9 more,
com.therandomlabs.curseapi.CurseException: Failed to execute request: Request{method=GET, url=https://addons-ecs.forgesvc.net/api/v2/addon/15947/files, tags={class retrofit2.Invocation=com.therandomlabs.curseapi.forgesvc.ForgeSvc.getFiles() [15947]}},
at com.therandomlabs.curseapi.util.RetrofitUtils.execute(RetrofitUtils.java:119),
at com.therandomlabs.curseapi.forgesvc.ForgeSvcProvider.files(ForgeSvcProvider.java:121),
at com.therandomlabs.curseapi.CurseAPI.lambda$files$5(CurseAPI.java:224),
at com.therandomlabs.curseapi.CurseAPI.get(CurseAPI.java:679),
at com.therandomlabs.curseapi.CurseAPI.files(CurseAPI.java:224),
at com.therandomlabs.curseapi.forgesvc.ForgeSvcProject.files(ForgeSvcProject.java:182),
at com.therandomlabs.curseapi.forgesvc.ForgeSvcProject.refreshFiles(ForgeSvcProject.java:202),
at de.erdbeerbaerlp.curseforge.CurseForgeUpdateThread.run(CurseForgeUpdateThread.java:45),
at java.base/java.util.TimerThread.mainLoop(Timer.java:556),
at java.base/java.util.TimerThread.run(Timer.java:506),
Caused by: java.net.SocketTimeoutException: timeout,
at okhttp3.internal.http2.Http2Stream$StreamTimeout.newTimeoutException(Http2Stream.java:678),
at okhttp3.internal.http2.Http2Stream$StreamTimeout.exitAndThrowIfTimedOut(Http2Stream.java:686),
at okhttp3.internal.http2.Http2Stream.takeHeaders(Http2Stream.java:154),
at okhttp3.internal.http2.Http2ExchangeCodec.readResponseHeaders(Http2ExchangeCodec.java:136),
at okhttp3.internal.connection.Exchange.readResponseHeaders(Exchange.java:115),
at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:94),
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142),
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:43),
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142),
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117),
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:94),
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142),
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117),
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93),
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142),
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:88),
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142),
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117),
at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:229),
at okhttp3.RealCall.execute(RealCall.java:81),
at retrofit2.OkHttpCall.execute(OkHttpCall.java:204),
at io.github.resilience4j.retrofit.RetrofitCircuitBreaker$CircuitBreakingCall.execute(RetrofitCircuitBreaker.java:114),
at com.therandomlabs.curseapi.util.RetrofitUtils.lambda$execute$39f5113e$1(RetrofitUtils.java:99),
at io.github.resilience4j.retry.Retry.lambda$decorateCheckedSupplier$3f69f149$1(Retry.java:137),
at io.vavr.control.Try.of(Try.java:75),
at com.therandomlabs.curseapi.util.RetrofitUtils.execute(RetrofitUtils.java:98),
... 9 more,
com.therandomlabs.curseapi.CurseException: Failed to execute request: Request{method=GET, url=https://addons-ecs.forgesvc.net/api/v2/addon/326516/files, tags={class retrofit2.Invocation=com.therandomlabs.curseapi.forgesvc.ForgeSvc.getFiles() [326516]}},
at com.therandomlabs.curseapi.util.RetrofitUtils.execute(RetrofitUtils.java:119),
at com.therandomlabs.curseapi.forgesvc.ForgeSvcProvider.files(ForgeSvcProvider.java:121),
at com.therandomlabs.curseapi.CurseAPI.lambda$files$5(CurseAPI.java:224),
at com.therandomlabs.curseapi.CurseAPI.get(CurseAPI.java:679),
at com.therandomlabs.curseapi.CurseAPI.files(CurseAPI.java:224),
at com.therandomlabs.curseapi.forgesvc.ForgeSvcProject.files(ForgeSvcProject.java:182),
at com.therandomlabs.curseapi.forgesvc.ForgeSvcProject.refreshFiles(ForgeSvcProject.java:202),
at de.erdbeerbaerlp.curseforge.CurseForgeUpdateThread.run(CurseForgeUpdateThread.java:45),
at java.base/java.util.TimerThread.mainLoop(Timer.java:556),
at java.base/java.util.TimerThread.run(Timer.java:506),
Caused by: java.net.SocketTimeoutException: timeout,
at okhttp3.internal.http2.Http2Stream$StreamTimeout.newTimeoutException(Http2Stream.java:678),
at okhttp3.internal.http2.Http2Stream$StreamTimeout.exitAndThrowIfTimedOut(Http2Stream.java:686),
at okhttp3.internal.http2.Http2Stream.takeHeaders(Http2Stream.java:154),
at okhttp3.internal.http2.Http2ExchangeCodec.readResponseHeaders(Http2ExchangeCodec.java:136),
at okhttp3.internal.connection.Exchange.readResponseHeaders(Exchange.java:115),
at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:94),
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142),
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:43),
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142),
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117),
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:94),
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142),
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117),
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93),
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142),
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:88),
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142),
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117),
at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:229),
at okhttp3.RealCall.execute(RealCall.java:81),
at retrofit2.OkHttpCall.execute(OkHttpCall.java:204),
at io.github.resilience4j.retrofit.RetrofitCircuitBreaker$CircuitBreakingCall.execute(RetrofitCircuitBreaker.java:114),
at com.therandomlabs.curseapi.util.RetrofitUtils.lambda$execute$39f5113e$1(RetrofitUtils.java:99),
at io.github.resilience4j.retry.Retry.lambda$decorateCheckedSupplier$3f69f149$1(Retry.java:137),
at io.vavr.control.Try.of(Try.java:75),
at com.therandomlabs.curseapi.util.RetrofitUtils.execute(RetrofitUtils.java:98),
... 9 more,
The cache is updated, but the message is not sent =(
Hi. I've built an image from
dev
branch for arm. The cache was created successfully, but then, when one of the addons was updated, I'm getting:Here are the last logs I have from the container:
My Dockerfile could be found here.