rdavydov / Twitch-Channel-Points-Miner-v2

A simple script that will watch a stream for you and earn the channel points.
GNU General Public License v3.0
1.1k stars 324 forks source link

[Unraid OS] Error when starting docker #386

Closed OnlyDads closed 8 months ago

OnlyDads commented 8 months ago

Describe the bug

I am running this on unraid from the app store, this in particular (Twitch-Channel-Points-Miner-Leander rdavidoff)

I have updated the example run.py and placed it into the folder as outlined in the setup.

When trying to start, the log shows the following: /usr/local/bin/python: can't find 'main' module in '/usr/src/app/run.py'

I'm not sure how to troubleshoot further. I hope this is the right place to ask this question, any help/advice would be appreciated as I am pretty inexperienced with this.

Steps to reproduce

  1. install image from unraid store
  2. update run.py
  3. place run.py in the designated folder
  4. start the docker
  5. read the log with the error /usr/local/bin/python: can't find 'main' module in '/usr/src/app/run.py'

Expected behavior

I would like the docker to start.

Operating system

linux unraid

Python version

UNK

Miner version

UNK

Other relevant software versions

No response

Logs

I am unsure how to add this to my script. I'm sorry.

Additional context

No response

rdavydov commented 8 months ago

Need more info.

  1. install image from unraid store

How exactly was this done? I mean what commands/actions?

  1. place run.py in the designated folder

What folder exactly?

  1. start the docker

How exactly was this done? I mean what commands/actions?

NoxRare commented 8 months ago

You need to get in contact with whomever is maintaining that unraid app install as it is not being managed by rdavydov and therefore out of their hands, my guess is that the installer is misconfigured. Please contact Unraid do not make an report here as this is not caused by the application / docker image but rather the container being misconfigured.

c0rrre commented 8 months ago

Hi, im also using the miner in Unraid and here is my configuration: image

Make sure to check the path for main.py and mount the file directly: image

The run.py (or main.py in my case) has to exist in the appdata folder

OnlyDads commented 8 months ago

Thank you for posting that information. I will try to apply to my install. Have a great day!

On Tue, Oct 24, 2023, 8:27 AM c0rrre @.***> wrote:

Hi, im also using the miner in Unraid and here is my configuration: [image: image] https://user-images.githubusercontent.com/5563418/277671827-f973bf43-7aa4-4bda-9b7a-bbd1f720fc30.png

Make sure to check the path for main.py and mount the file directly: [image: image] https://user-images.githubusercontent.com/5563418/277672161-cce1fe77-14ba-4b4c-a2aa-f51360c5f12a.png

The run.py (or main.py in my case) has to exist in the appdata folder

— Reply to this email directly, view it on GitHub https://github.com/rdavydov/Twitch-Channel-Points-Miner-v2/issues/386#issuecomment-1777203540, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASHRWWFXINGEHNYR7F4P7NLYA662PAVCNFSM6AAAAAA6K6CGNOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONZXGIYDGNJUGA . You are receiving this because you authored the thread.Message ID: @.***>

OnlyDads commented 8 months ago

Need more info.

  1. install image from unraid store

How exactly was this done? I mean what commands/actions? It's an automated process, I'm assuming that unraid runs compose commands but I could get into the logs to figure that out. I'm relatively new to docker in general. I'm sorry that wasn't very helpful.

  1. place run.py in the designated folder

What folder exactly? run.py is located at \UNRAID\appdata\twitchminer\run.py\run.py\file here. I think I'm one level too deep and will move/copy the file to one directory UP in the stack. I didn't realize this until right now and looking at the other users unraid settings.

  1. start the docker

How exactly was this done? I mean what commands/actions?

**I'm sorry I am not currently equipped with the knowledge that you are seeking.

Essentially, I installed the docker application from the unraid store, this is the one: Twitch-Channel-Points-Miner-Leander**

You need to get in contact with whomever is maintaining that unraid app install as it is not being managed by rdavydov and therefore out of their hands, my guess is that the installer is misconfigured. Please contact Unraid do not make an report here as this is not caused by the application / docker image but rather the container being misconfigured.

I am sorry, I did not intend to create issues. I reported the problem to the wrong place. I am new to github and lack epertise to answer most of these questions. no doubt it's a configuration error. I'm sorry again to bother you.

OnlyDads commented 8 months ago

I was able to move the run.py to the directory its looking for, however I cannot get the container to start. In the log I get the following error message..

/usr/local/bin/python: can't find 'main' module in '/usr/src/app/run.py'

I only added my twitch credentials and a single streamer in the run.py example.

Any thoughts or ideas are much appreciated.

c0rrre commented 8 months ago

\UNRAID\appdata\twitchminer\run.py\run.py

This path is wrong

NoxRare commented 8 months ago

@segaastrocity You need to give us more to go on here, Please provide screenshots of your current set up with more detail we cant help you at all. Feel free to contact me on discord aswell: majjoduran

While I know very little about unraid I know a fair bit about docker.

rdavydov commented 8 months ago

Most likely it should be \UNRAID\appdata\twitchminer\run.py

What is the contents of your \UNRAID\appdata\twitchminer folder?

rdavydov commented 8 months ago

Please provide screenshots of your current set up with more detail we cant help you at all.

Right, and these too. @segaastrocity please also provide screenshots just like @c0rrre did.

This will help a lot in understanding what's wrong.

OnlyDads commented 8 months ago

I think I fixed it! It's now running and i just activated it through the twitch window from the log file with the code.

I'm now trying to access the web interface and coming into some issues but i will mess with them for a few minutes and then report back with screenshots. I apologize for not providing everything needed but I wanted to specifically thank all of you for your time, efforts and energy. I am truly grateful for you and appreciate you very much!

OnlyDads commented 8 months ago

twitchminer

These are my current settings, but I cannot access the web ui at myinternalserverip:5555 as i have set it.

rdavydov commented 8 months ago

These are my current settings, but I cannot access the web ui at myinternalserverip:5555 as i have set it.

Most likely you should change the run.py file accordingly. Please provide its full contents. Don't forget to omit your credentials.

NoxRare commented 8 months ago

in your .py file make sure the port is set to 5000 and not 5555. Is the logs saying that the analytics page is running?

rdavydov commented 8 months ago

image

The fact that the container port is displayed as 5000 should give you a hint.

OnlyDads commented 8 months ago

The container port is 5000, but in unraid I can set a specific port to avoid conflicts with other services. I don't think the webserver is running. Can you tell me how I can tell?

Here is a copy of my file, with the import stuff removed: If there is a different way to share this, Please let me know and I can do whatever is required.

`# -- coding: utf-8 --

import logging from colorama import Fore from TwitchChannelPointsMiner import TwitchChannelPointsMiner from TwitchChannelPointsMiner.logger import LoggerSettings, ColorPalette from TwitchChannelPointsMiner.classes.Chat import ChatPresence from TwitchChannelPointsMiner.classes.Discord import Discord from TwitchChannelPointsMiner.classes.Telegram import Telegram from TwitchChannelPointsMiner.classes.Matrix import Matrix from TwitchChannelPointsMiner.classes.Pushover import Pushover from TwitchChannelPointsMiner.classes.Settings import Priority, Events, FollowersOrder from TwitchChannelPointsMiner.classes.entities.Bet import Strategy, BetSettings, Condition, OutcomeKeys, FilterCondition, DelayMode from TwitchChannelPointsMiner.classes.entities.Streamer import Streamer, StreamerSettings

twitch_miner = TwitchChannelPointsMiner( username="myusername", password="mypassword$", # If no password will be provided, the script will ask interactively claim_drops_startup=False, # If you want to auto claim all drops from Twitch inventory on the startup priority=[ # Custom priority in this case for example: Priority.STREAK, # - We want first of all to catch all watch streak from all streamers Priority.DROPS, # - When we don't have anymore watch streak to catch, wait until all drops are collected over the streamers Priority.ORDER # - When we have all of the drops claimed and no watch-streak available, use the order priority (POINTS_ASCENDING, POINTS_DESCEDING) ], enable_analytics=False, # Disables Analytics if False. Disabling it significantly reduces memory consumption disable_ssl_cert_verification=False, # Set to True at your own risk and only to fix SSL: CERTIFICATE_VERIFY_FAILED error disable_at_in_nickname=False, # Set to True if you want to check for your nickname mentions in the chat even without @ sign logger_settings=LoggerSettings( save=True, # If you want to save logs in a file (suggested) console_level=logging.INFO, # Level of logs - use logging.DEBUG for more info console_username=False, # Adds a username to every console log line if True. Also adds it to Telegram, Discord, etc. Useful when you have several accounts auto_clear=True, # Create a file rotation handler with interval = 1D and backupCount = 7 if True (default) time_zone="", # Set a specific time zone for console and file loggers. Use tz database names. Example: "America/Denver" file_level=logging.DEBUG, # Level of logs - If you think the log file it's too big, use logging.INFO emoji=True, # On Windows, we have a problem printing emoji. Set to false if you have a problem less=False, # If you think that the logs are too verbose, set this to True colored=True, # If you want to print colored text color_palette=ColorPalette( # You can also create a custom palette color (for the common message). STREAMER_online="GREEN", # Don't worry about lower/upper case. The script will parse all the values. streamer_offline="red", # Read more in README.md BET_wiN=Fore.MAGENTA # Color allowed are: [BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET]. ), telegram=Telegram( # You can omit or set to None if you don't want to receive updates on Telegram chat_id=123456789, # Chat ID to send messages @getmyid_bot token="123456789:shfuihreuifheuifhiu34578347", # Telegram API token @BotFather events=[Events.STREAMER_ONLINE, Events.STREAMER_OFFLINE, Events.BET_LOSE, Events.CHAT_MENTION], # Only these events will be sent to the chat disable_notification=True, # Revoke the notification (sound/vibration) ), discord=Discord( webhook_api="https://discord.com/api/webhooks/0123456789/0a1B2c3D4e5F6g7H8i9J", # Discord Webhook URL events=[Events.STREAMER_ONLINE, Events.STREAMER_OFFLINE, Events.BET_LOSE, Events.CHAT_MENTION], # Only these events will be sent to the chat ), matrix=Matrix( username="twitch_miner", # Matrix username (without homeserver) password="...", # Matrix password homeserver="matrix.org", # Matrix homeserver room_id="...", # Room ID events=[Events.STREAMER_ONLINE, Events.STREAMER_OFFLINE, Events.BET_LOSE], # Only these events will be sent to the chat ), pushover=Pushover( userkey="YOUR-ACCOUNT-TOKEN", # Login to https://pushover.net/, the user token is on the main page. token="YOUR-APPLICATION-TOKEN", # Create a application on the website, and use the token shown in your application. priority=0, # Read more about priority here: https://pushover.net/api#priority sound="pushover", # A list of sounds can be found here: https://pushover.net/api#sounds events=[Events.CHAT_MENTION, Events.DROP_CLAIM], # Only these events will be sent. ) ), streamer_settings=StreamerSettings( make_predictions=True, # If you want to Bet / Make prediction follow_raid=True, # Follow raid to obtain more points claim_drops=True, # We can't filter rewards base on stream. Set to False for skip viewing counter increase and you will never obtain a drop reward from this script. Issue #21 claim_moments=True, # If set to True, https://help.twitch.tv/s/article/moments will be claimed when available watch_streak=True, # If a streamer go online change the priority of streamers array and catch the watch screak. Issue #11 chat=ChatPresence.ONLINE, # Join irc chat to increase watch-time [ALWAYS, NEVER, ONLINE, OFFLINE] bet=BetSettings( strategy=Strategy.SMART, # Choose you strategy! percentage=5, # Place the x% of your channel points percentage_gap=20, # Gap difference between outcomesA and outcomesB (for SMART strategy) max_points=50000, # If the x percentage of your channel points is gt bet_max_points set this value stealth_mode=True, # If the calculated amount of channel points is GT the highest bet, place the highest value minus 1-2 points Issue #33 delay_mode=DelayMode.FROM_END, # When placing a bet, we will wait until delay seconds before the end of the timer delay=6, minimum_points=20000, # Place the bet only if we have at least 20k points. Issue #113 filter_condition=FilterCondition( by=OutcomeKeys.TOTAL_USERS, # Where apply the filter. Allowed [PERCENTAGE_USERS, ODDS_PERCENTAGE, ODDS, TOP_POINTS, TOTAL_USERS, TOTAL_POINTS] where=Condition.LTE, # 'by' must be [GT, LT, GTE, LTE] than value value=800 ) ) ) )

You can customize the settings for each streamer. If not settings were provided, the script would use the streamer_settings from TwitchChannelPointsMiner.

If no streamer_settings are provided in TwitchChannelPointsMiner the script will use default settings.

The streamers array can be a String -> username or Streamer instance.

The settings priority are: settings in mine function, settings in TwitchChannelPointsMiner instance, default settings.

For example, if in the mine function you don't provide any value for 'make_prediction' but you have set it on TwitchChannelPointsMiner instance, the script will take the value from here.

If you haven't set any value even in the instance the default one will be used

twitch_miner.analytics(host="127.0.0.1", port=5000, refresh=5, days_ago=7) # Start the Analytics web-server

twitch_miner.mine( [ Streamer("jeffgerstmann", settings=StreamerSettings(make_predictions=True , follow_raid=True , claim_drops=True , watch_streak=True , bet=BetSettings(strategy=Strategy.SMART , percentage=5 , stealth_mode=True, percentage_gap=20 , max_points=234 , filter_condition=FilterCondition(by=OutcomeKeys.TOTAL_USERS, where=Condition.LTE, value=800 ) ) )), Streamer("GiantBomb", settings=StreamerSettings(make_predictions=False , follow_raid=True , claim_drops=False , bet=BetSettings(strategy=Strategy.PERCENTAGE , percentage=5 , stealth_mode=False, percentage_gap=20 , max_points=1234 , filter_condition=FilterCondition(by=OutcomeKeys.TOTAL_POINTS, where=Condition.GTE, value=250 ) ) )), Streamer("streamer-username03", settings=StreamerSettings(make_predictions=True , follow_raid=False , watch_streak=True , bet=BetSettings(strategy=Strategy.SMART , percentage=5 , stealth_mode=False, percentage_gap=30 , max_points=50000 , filter_condition=FilterCondition(by=OutcomeKeys.ODDS, where=Condition.LT, value=300 ) ) )), Streamer("streamer-username04", settings=StreamerSettings(make_predictions=False , follow_raid=True , watch_streak=True )), Streamer("streamer-username05", settings=StreamerSettings(make_predictions=True , follow_raid=True , claim_drops=True , watch_streak=True , bet=BetSettings(strategy=Strategy.HIGH_ODDS , percentage=7 , stealth_mode=True, percentage_gap=20 , max_points=90 , filter_condition=FilterCondition(by=OutcomeKeys.PERCENTAGE_USERS, where=Condition.GTE, value=300 ) ) )), Streamer("streamer-username06"), Streamer("streamer-username07"), Streamer("streamer-username08"), "streamer-username09", "streamer-username10", "streamer-username11" ], # Array of streamers (order = priority) followers=False, # Automatic download the list of your followers followers_order=FollowersOrder.ASC # Sort the followers list by follow date. ASC or DESC`

OnlyDads commented 8 months ago

https://pastebin.com/MKT24fQf

if this is easier, IDK why the formatting got strange, I copied out of notepad++

rdavydov commented 8 months ago

Uncomment the line #twitch_miner.analytics(host="127.0.0.1", port=5000, refresh=5, days_ago=7) # Start the Analytics web-server

Just remove the # sign in the beginning of the line.

NoxRare commented 8 months ago

At this point you need to actually read the config options, this is basic configuration stuff.

Change enable_analytics=False to enable_analytics=True

remove the # at the start at: #twitch_miner.analytics(host="127.0.0.1", port=5000, refresh=5, days_ago=7)

rdavydov commented 8 months ago

And set enable_analytics=True

rdavydov commented 8 months ago

Also, changing host="127.0.0.1" to host="0.0.0.0" in the run.py file should be your next step in case it still doesn't work.

OnlyDads commented 8 months ago

Thank you so much for your help! You guys are awesome. I hope you all have a great week and I will be more adventurous next time and poke through all of the options in the configuration file. I guess I'm a little spoonfed babby with a lot of these unraid docker containers.

I've learned alot and never expected to have so many people willing to tell me what is wrong.

On Tue, Oct 24, 2023, 11:12 AM Roman Davydov @.***> wrote:

Also, changing host="127.0.0.1" to host="0.0.0.0" in the run.py file should be your next step in case it still doesn't work.

— Reply to this email directly, view it on GitHub https://github.com/rdavydov/Twitch-Channel-Points-Miner-v2/issues/386#issuecomment-1777571921, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASHRWWBNCKTGVDEJ54RBZOLYA7SIRAVCNFSM6AAAAAA6K6CGNOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONZXGU3TCOJSGE . You are receiving this because you were mentioned.Message ID: @.***>

rdavydov commented 8 months ago

Is this issue solved and can be closed? @segaastrocity It would be nice of you to leave a comment before closing the issue, so it will help other people with the same problem. Did you manage to solve this issue? What was the cause?

OnlyDads commented 8 months ago

My issue was that the .py file was not in the correct location. My setup in unraid was the default, but once I moved the .py to the proper location it began running.

I have not yet edit the config file to run the webserver but i should be able to do so without issue thanks to your help.

this issue can be closed.

On Thu, Oct 26, 2023 at 6:09 AM Roman Davydov @.***> wrote:

Is this issue solved and can be closed? @segaastrocity https://github.com/segaastrocity It would be nice of you to leave a comment before closing the issue, so it will help other people with the same problem. Did you manage to solve this issue? What was the cause?

— Reply to this email directly, view it on GitHub https://github.com/rdavydov/Twitch-Channel-Points-Miner-v2/issues/386#issuecomment-1780906094, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASHRWWGTOLYL2TBI7V46H7DYBJAH5AVCNFSM6AAAAAA6K6CGNOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOBQHEYDMMBZGQ . You are receiving this because you were mentioned.Message ID: @.***>

WaffleMaster22 commented 5 months ago

I have the same issue on unraid. Where is the correct location?

rdavydov commented 5 months ago

@WaffleMaster22 you can tag @segaastrocity so they would receive a mention notification. This is an old and closed issue, no guarantees that they would read it.