opensourcehacker / sevabot

A Skype bot supporting integration with external services
http://sevabot-skype-bot.readthedocs.org/
566 stars 121 forks source link

With windows many problem... #58

Open Repepioras opened 10 years ago

Repepioras commented 10 years ago

always get same errors in all commands maybe can some help me:

Exception in thread Thread-5545: Traceback (most recent call last): File "C:\Python\Lib\threading.py", line 808, in bootstrap_inner self.run() File "c:\sevabot\sevabot\bot\modules.py", line 246, in run self.result = self.func() File "c:\sevabot\sevabot\bot\modules.py", line 64, in threaded_run process = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=False, env=env) File "C:\Python\Lib\subprocess.py", line 711, in __init errread, errwrite) File "C:\Python\Lib\subprocess.py", line 948, in _execute_child startupinfo) TypeError: environment can only contain strings

mkfsn commented 10 years ago

I had the same problem in my Win7 64bit but now works fine, maybe you can try this:

in sevabot\sevabot\bot\modules.py

        env["SKYPE_USERNAME"] = username.encode("utf-8")
        env["SKYPE_FULLNAME"] = full_name.encode("utf-8")

to

        env["SKYPE_USERNAME".encode("utf-8")] = username.encode("utf-8")
        env["SKYPE_FULLNAME".encode("utf-8")] = full_name.encode("utf-8")

and then

        process = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=False, env=env)

to

        process = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True, env=env)

Maybe this is not a good solution, but makes it works fine in my win7. :)

miohtama commented 10 years ago

Dare to submit a pull request? :)

alejocamaleon commented 9 years ago

This change seemed to work for me in win7 with Skype 6.22.0.107

Lolmewn commented 9 years ago

Attempted the fix above - error appears to remain present.

Exception in thread Skype4Py MessageStatus event scheduler:
Traceback (most recent call last):
  File "C:\Python27\Lib\threading.py", line 530, in __bootstrap_inner
    self.run()
  File "build\bdist.win32\egg\Skype4Py\utils.py", line 225, in run
    handler(*self.args, **self.kwargs)
  File "c:\users\administrator\documents\skypebot\sevabot\sevabot\bot\bot.py", line 95, in handleMessages
    logger.debug("Incoming %s - %s - %s: %s" % (status, msg.Chat.FriendlyName,
  File "build\bdist.win32\egg\Skype4Py\chat.py", line 245, in _GetFriendlyName
    return self._Property('FRIENDLYNAME')
  File "build\bdist.win32\egg\Skype4Py\chat.py", line 33, in _Property
    return self._Owner._Property('CHAT', self.Name, PropName, Value, Cache)
  File "build\bdist.win32\egg\Skype4Py\skype.py", line 296, in _Property
    value = self._DoCommand('GET %s' % jarg, jarg)
  File "build\bdist.win32\egg\Skype4Py\skype.py", line 281, in _DoCommand
    raise SkypeError(int(errnum), errstr)
SkypeError: [Errno 105] Invalid chat name

Pastebin of my new modules.py file: http://pastebin.com/qTj4BJHU