stanfieldr / ghetto-skype

Web Skype + Tray Icon + Notifications
GNU General Public License v3.0
718 stars 52 forks source link

Browser not supported #158

Open jherazob opened 5 years ago

jherazob commented 5 years ago

Good morning. Today i was greeted with a message telling me that the browser was no longer supported, which basically breaks the app.

What can be done about this? Change the Electron version? the user agent? No idea. It's a showstopper bug so it needs attention quickly.

kliment commented 5 years ago

Can confirm it happens here too.

maurosh commented 5 years ago

Same for linux 64-32 version

Bsplesk commented 5 years ago

+1

Browser not supported Use Microsoft Edge or Google Chrome to access Skype for Web experience. Alternatively, download Skype on your desktop computer.

microsoft blocked clients not from the " white list of browsers". Need to learn to impersonate google chrome / microsoft edge. Let them think that users use curves and inconvenient browsers.

brainscar commented 5 years ago

https://github.com/stanfieldr/ghetto-skype/blob/e3d9e42f2d71ef6f1e79b9c5a99ceca10e461fbe/src/main.js#L73

mainWindow.webContents.setUserAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36");

brainscar commented 5 years ago

Just to elaborate, change that string to:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36

It will work again.

Should be located on most Linux machines at:

/opt/ghetto-skype/main.js

brainscar commented 5 years ago

@jherazob @kliment @maurosh @Bsplesk @stanfieldr

Please review and approve pull request.

https://github.com/stanfieldr/ghetto-skype/pull/159

jherazob commented 5 years ago

The file is not at that location, maybe it's packed inside one the those .pak files? What's the correct way to manipulate them?

brainscar commented 5 years ago

@jherazob you would have to compile from source. Change the file beforehand then compile. Sorry I forgot about the compiled versions on other systems.

Bsplesk commented 5 years ago

@brainscar Thanks. Video/Voice call works. Arch Linux (4.19.17-1-lts x86_64 GNU/Linux);

Bsplesk commented 5 years ago

@brainscar Can include in the configuration file? ~/.config/Ghetto\ Skype/settings.json . useragent can be updated.

maurosh commented 5 years ago

Tried to compile of myself, for debian stable but I stuck on dependencies: libcairo2-dev : Depends: libfontconfig1-dev (>= 2.2.95) but it is not going to be installed

Anyone managed to build the corrected deb file for debian/debian-based system to share? Note that version 1.6 works only on 64bt debian stable systems. For 32bit I used 1.50 version. So, it's better to get some instructions step-by-step to compile of myself each version.

mozo78 commented 5 years ago

maurosh just use aptitude.

I need help, It seems I can't find nowhere main.js on Linux Mint. On Arch it's in /opt/ghetto-skype/ but in Mint it isn't there.

maurosh commented 5 years ago

thanx mojo78, I've installed the missing dependencies fron debian backports but still can't build it due to electron issues. The "main.js" is into the source dir /src and now it's corrected. Just clone or download and compile.

Anyway, i think (and suggest) it's better to read the agent info (ie "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36") from an external file, such as a flatfile, an xml or something. So users can be able to update it manually without the need of a new compilation.

Note that 32bit version is more usefull than 64bit, as there is no official release of skype for linux 32bit. There are people out there using old 32bit systems just for basic communication and ghetto is the only way to use skype.

mozo78 commented 5 years ago

I just succeeded compiling it remotely for a friend of mine with an old laptop with Linux Mint 18.3 x86. You have to install node.js 8 in order to compile Ghetto-Skype 1.5.0 without any problems. Versions 10 and 11 aren't available for x86. It fails to compile with the default version 4.

sudo apt-get purge --remove nodejs
sudo apt-get autoremove
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

Check the version with:

node -v

It has to be 8.x.

Edit the main.js file which is located in src/ with the correct values, then compile the package:

npm install
npm run dist
cd dist && ls

Then the package is located in the dist folder and you'll install the patched version of Ghetto-Skype from it. That's all :)

PS. If you try to compile master (1.6.1) be warned that in the package.json file the default package is rpm. You have to change it to deb.

maurosh commented 5 years ago

Thanx again mozo78, nodejs version 8 worked. Find below the i386 deb v.1.5.1 available for 30 days. Tested and works, video call not tested. Compiled in vanilla debian stretch (v.9.8 -kernel 4.9.0-8-686).

https://ufile.io/4bp7k

Edit: video calls not working in this version. Ghetto-skype v1.6.1 is working if your system uses libc6 >= v2.27 (ubuntu maybe). Debian stretch uses libc6 v2.24. There is a newer libc6 v2.28 in sid repos but I shouldn't use sid packets on stretch.

mozo78 commented 5 years ago

You are welcome :)

jherazob commented 5 years ago

Also on Mint here, have been managing with a Chromium instance but without notifications. Since i do not desire to recompile it and spread stray dependencies not used for anything else all over my machine just to change the User-Agent i'll just wait for the (hopefully not too far) next release. I also concur that putting the User-Agent somewhere editable is the way to go, with a default one that will be used if that is absent.

maurosh commented 5 years ago

Compiled x86-64 version 1.6.1 as well, tested and working as expected. Video calls not tested. Debian stretch v9.8 - kernel 4.9.0-8-amd64 - node v8.15.1 Find below the deb file available for 30 days:

https://ufile.io/1r1lf

Edit: video calls tested and working.

fa11er commented 5 years ago

I've just tried and it works fine. Without recompilation. sed -i 's/55.0.2883.87/70.0.3538.77/g' /opt/Ghetto\ Skype/resources/app.asar

rootbdfy commented 5 years ago

I've just tried and it works fine. Without recompilation. sed -i 's/55.0.2883.87/70.0.3538.77/g' /opt/Ghetto\ Skype/resources/app.asar

voice calls not work for me :( i'm trying sed -i 's|"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"|"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121111"|g' /opt/Ghetto\ Skype/resources/app.asar but calls still not work

maurosh commented 5 years ago

Find below patched, properly compiled and tested in linux installations app..asar files for versions 1.5.1. x86, 1.6.1 x86 and 1.6.1 x86_64. Suppose you have to replace the installed /opt/Ghetto Skype/resources/app.asar with the proper file of the zipfile below. Files are tested but not this method by me. It is possible to work as well in non-linux systems using app.asar file.

Available for 30 days: https://ufile.io/qfcs1

Edit: Video/voice calls working for v1.6.0+. For the x86 version to work properly libc6 >= v2.27 is required by electron. There is no way to bypass this even using appimage. I tried to build an appimage including dependencies but such libs as libc6 couldn't pack into appimage. Video calls working fine on Debian stretch x86-64 using the patched v1.6+ but not on stretch x86. If your system is based on x86 arch, ensure that you have libc6 v2.27 or greater, or use v.1.5+ of ghetto-skype without video/voice calls.

mozo78 commented 5 years ago

On Arch calls working fine but not on Mint. I checked the libc6 version and it's 2.27. 1.6.0 x86 don't start at all.

A JavaScript error occurred in the main process Uncaught Exception: Error: libgif.so.7: cannot open shared object file: No such file or directory at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:172:20) at Object.Module._extensions..node (module.js:598:18) at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:186:18) at Module.load (module.js:503:32) at tryModuleLoad (module.js:466:12) at Function.Module._load (module.js:458:3) at Module.require (module.js:513:17) at require (internal/module.js:11:18) at Object.<anonymous> (/opt/Ghetto Skype/resources/app.asar/node_modules/canvas/lib/bindings.js:3:18) at Object.<anonymous> (/opt/Ghetto Skype/resources/app.asar/node_modules/canvas/lib/bindings.js:5:3)

mozo78 commented 5 years ago

Does 1.6.1 run on x86 systems with working calls? I ask before try again remotely on my friend's laptop. I just tried on my Mint x64 and the calls are working with 1.6.1.

maurosh commented 5 years ago

Yes mozo78, tried 1.6.1 x86 on a "franken-debian" (with updated libc6 v2.28 from sid) and video calls are working as expected. I shouldn't use anyway such experimental system for real. You better check it on a virtual machine with mint x86 before try it on your friend's laptop.

I also tried copying directory /opt/Ghetto Skype on parabola x86 (arch based) and porteus x86 (slackware based), and running "ghetto-skype". It's working on both systems.. Never tried on mint or another ubuntu-based distro.

mozo78 commented 5 years ago

Thank you I'll try :)

mozo78 commented 5 years ago

It seems I can't compile the 1.6.1 x86 version. I can compile x86_x64 without problems but x86 fails. Can someone send me a precompiled 1.6.1 x86 with the fix? Thank you in advance.

mozo78 commented 5 years ago

"npm install && npm start" works but not compilation. For now it may be used like that till someone send me 1.6.1 x86.deb :)

maurosh commented 5 years ago

You can install v1.6.0 x86 and replace /opt/Ghetto Skype/resources/app.asar from the zipfile i've uploaded.

mozo78 commented 5 years ago

But 1.6.0 doesn't start at all :(

maurosh commented 5 years ago

execute the command: sudo dpkg -l | grep libc6 and find out the version of libc6 of your linux distribution. It must be >=2.27 otherwise v1.6+ won't run.

mozo78 commented 5 years ago

I already checked it. It's 2.27. 1.6.1 actually run but without compilation. With "npm install && npm start" the program starts and works without problems but load times are longer than the installed Ghetto-Skype. I just can't compile it to install it properly. I can compile 1.5 x86 but not 1.6.1 x86. In the mean time on my Linux Mint x64 the x64 versions are compiling fine (1.5 and 1.6.1). I just need a 1.6.1 x86 .deb.

maurosh commented 5 years ago

Nice. In the source directory there's a "dist" subdirectory where your compilation deb should be placed. Your deb will not be there but there is another directory named i32... or something, containing the uncompressed files you need. Copy it as admin in /opt, rename it to "Ghetto-Skype", make it executable with "sudo chmod +x /opt/Ghetto-Skype/ghetto-skype" and execute /opt/Ghetto-Skype/ghetto-skype. That's all.

The loading time is longer in 1.6+ version even on x86-64. It's normal.

mozo78 commented 5 years ago

It already crossed my mind but there isn't "dist" directory for the package isn't compiled :)

maurosh commented 5 years ago

Find the directory below. Download, uncompress, put it in /opt etc. Available for 30 days: https://ufile.io/acw87

(ghetto-skype v 1.6.1 x86)

mozo78 commented 5 years ago

Thank you :) But ghetto-skype in this directory isn't a binary but a library. How it will be executed? I ask for I can't try it now for my friend is already fall asleep and I'll can try tomorrow :)

mozo78 commented 5 years ago

Ah, I now examined my Mint's /opt/Ghetto Skype and it's just like that. Thank you. Tomorrow I'll use your files. Thank you once again :)

maurosh commented 5 years ago

it is an electron executable. cd to dir, chmod +x and execute it: ./ghetto-skype.

mozo78 commented 5 years ago

Yes I already figured it out. Thank you :)

ghost commented 5 years ago

i hate to be the noob in the room, but, is it possible to have the program updated without going through all this compiling?

intika commented 5 years ago
hako1 commented 5 years ago

https://ufile.io/acw87 (ghetto-skype v 1.6.1 x86)

The link expired. Can you update or make a new one?

hako1 commented 5 years ago

I have tried sed -i 's/55.0.2883.87/70.0.3538.77/g' /opt/Ghetto\ Skype/resources/app.asar now it says website not found, and offers to use Web-Skype (which works, but is ugly)

hako1 commented 5 years ago

I have followed intika's guide, and it works as far as there a no error messages anymore. It seems to start Web-Skype. Unfortunately, no phone or video calls are possible; it says the browser does not support them, the icon is greyed. Any way to get the functionality back?

mozo78 commented 5 years ago

Yes use 1.6.1.

hako1 commented 5 years ago

I need 1.6.1 x86-64, how to get it? Unfortunately, https://ufile.io/1r1lf expired. Can you re-upload or send it to me somehow?

mozo78 commented 5 years ago

I need 1.6.1 x86-64, how to get it? Unfortunately, https://ufile.io/1r1lf expired. Can you re-upload or send it to me somehow?

You must compile it from source :)

maurosh commented 5 years ago

Download below the latest v1.6.1 deb for 30 more days

-x86-64: https://ufile.io/0h9f16ov

-x86: https://ufile.io/1zdvs47w

hako1 commented 5 years ago

Thank you. I purged the old Ghetto-Skype and installed v1.6.1. Unfortunately, it does not work. It creates the 3 processes, but does not show any UI. Same as with the app.asar you sent me before. I am using Ubuntu 18.04 with Cinnamon desktop. The official Skype works, however.

ghost commented 5 years ago

Thank you. I purged the old Ghetto-Skype and installed v1.6.1. Unfortunately, it does not work. It creates the 3 processes, but does not show any UI. Same as with the app.asar you sent me before. I am using Ubuntu 18.04 with Cinnamon desktop. The official Skype works, however.

i have the same problem with 32bit Mint and Lubuntu

hako1 commented 5 years ago

After some try and error I started Ghetto-Skype from command line:

A JavaScript error occurred in the main process Uncaught Exception: Error: libjpeg.so.62: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden

After installation of libjpeg62:

A JavaScript error occurred in the main process Uncaught Exception: Error: /usr/lib/x86_64-linux-gnu/libjpeg.so.62: version `LIBJPEGTURBO_6.2' not found (required by /tmp/.org.chromium.Chromium.ZmDrfZ)

How to get the required version `LIBJPEGTURBO_6.2' for Ubuntu?