Skip to main content

Installing Booksonic Air in the cloud for cheap

If you prefer video format tutorials this is also available as a youtube video here

Before we get too deep into this guide I just want to clarify what I mean with cloud in this instance as the term can be kind of vague.

The cloud we are talking about here is not Google Drive, Dropbox etc, it is simply a Linux machine that you don’t have to host at home, what I am talking about here is a VPS, aka a Virtual Private Server.

Getting a server

Ok, with that out of the way lets get started.
Since I started Booksonic I have been on the lookout for VPS providers that can give you the amount of storage needed for audiobooks without having to pay hundreds of dollars and let me tell you, they are few and far between.

The one I am currently using and can really recommend is called Contabo. They offer multiple tiers with different hardware but since all of them can handle Booksonic without any problems all we really care about is the storage. You can see the specs below or at this page

Once you have selected the one you want to use click order and you will be taken to a configuration page. Under Operation System check the box for Ubuntu 20.04, leave the rest unchecked and click Order now.

Here comes the hard part, the wait. As far as I can tell they setup your server manually the first time, in my case this has usually taken about 2 hours but it can probably vary. In the meantime go grab a coffee and watch a good movie.

Installing dependencies

Once the installation is done you will receive and email that contains something like this. This is your server info.

If you are on a Windows computer open up Powershell from the start menu, if you are on Linux or Mac you open up the terminal instead, the commands should be the same.

In Powershell enter the following command, this will give you access to your new Ubuntu server. Replace IPADDRESS with the address from your email.

ssh [email protected]

It will ask you if your trust the fingerprint, answer yes

You will be asked to enter your password, enter the one that is just called password in your email. Something that can be a bit weird for Windows users is that it won’t show you when you type your password but don’t worry just type it anyway and press enter.

The first thing we want to do is change the default password on your box, you do that by typing the command and follow the instructions

passwd

Now that the password is changed to something of your own we can get started with preparing the dependencies and folders. The first thing we need is to install something called docker. We do this by typing the following command

apt install docker.io

Next we need to create a few folders where we are going to put our files. We do this by typing

mkdir /booksonic
mkdir /booksonic/config
mkdir /audiobooks
mkdir /podcasts

That’s it, easy huh. Now lets do what you came here for, install Booksonic Air.

Installing Booksonic

docker create --name=booksonic-air -p 80:4040 -v /booksonic/config:/config -v /audiobooks:/audiobooks -v /podcasts:/podcasts --restart unless-stopped linuxserver/booksonic-air

That’s it, now you have installed Booksonic, but you still need to start it. You can start it by running the command

docker start booksonic-air

Configuring Booksonic

I won’t be doing a full configuration guide here but there are a few things you need to change in the server to get it working.

Open your browser and in the address field enter the IP address of your server. Sign in with the admin account. Both the username and password is admin.

The first thing you need to do is change your admin password, you can do so from settings -> users

Once you have changed your password you will be signed out and have to sign in again with your new password

Head back to settings, change the folder to /audiobooks
Then hit save

Securing your server

Yeah, I know this is a bit boring but it is really really important, right now your server is not using a firewall, that is a really really bad thing. So lets enable the firewall.

ufw allow 22
ufw allow 80
ufw enable

What did we just do? We just created two rules for ports that should be open and then we enabled the firewall. Port 22 is used by SSH, the tool you are using to control your server, if you had not allowed this you would have lost the connection as soon as the firewall was turned on. Port 80 is the standard port on the web, it is allowed so you can connect to the Booksonic server.

And now at last we are done!

But, how do I upload my audiobooks to the server?

Ah, good question. You do it over sftp, you can use any sftp client you want but if you don’t already have one I can recommend FileZilla.

The Host is the server address, Username is root, Password is the one you set before and Port is 22.

If you are using FileZilla, on the right side, set “Remote site:” to /audiobooks and press enter, then you can drag and drop your audiobook library in the window.

That’s it folks! Should you need any more help or think that something important is missing from the guide, feel free to reach out to me at [email protected], in the comments below or at the Booksonic Subreddit


Obs, if you click the contabo links in this guide and rent a server I will receive a small commission at no extra cost to you, this has not influenced my decision to recommend them in any way, they are what I use personally and what the Booksonic demo is hosted on.

Share

Migrating users and settings from Bookonic Legacy Server to Booksonic Air

While I would recommend starting your Booksonic Air fresh I understand that in some cases migrating users might be needed. Just keep in mind that there is a risk this will lead to weird bugs.

1. Stop your Booksonic legacy server

2. Go to C: and rename the Booksonic folder booksonic.old

3. Run the installation described in this blogpost, then open powershell as admin and run the command stop-process -name java
This will shut down you booksonic air server, please keep in mind that it will also shut down any other java process you may have running.

4. Go to c:\booksonic and delete the file airsonic.properties and the folder db

5. Go to c:\booksonic.old and copy the file booksonic.properties and the folder db to c:\booksonic

6. Rename the file booksonic.properties to airsonic.properties, do the same with all the files in the db folder

Now you can restart the Air server by rightclicking on start-booksonic.ps1 and selecting Run with powershell

You should now have your old settings and users, if you run in to any problems, you can contact me at [email protected]

Share

How to install Booksonic Air on Windows 10

Booksonic Air is the new and improved Booksonic server, this new version is based on Airsonic meaning a lot of stability issues has been fixed. It also sports an improved webplayer with variable playback speed, something that has been requested ever since the first server was released.

So how do you install it?

While my reccomendation is to install Booksonic Air with Docker installing it directly on Windows is possible as well.

Still want to run Booksonic on Windows? Ok, first you need to download a file called Install-BooksonicOnWindows.ps1

Go to your start menu and search for powershell, rightclick on that and select run as admin. Enter this command

Get-Executionpolicy

If you get anything other then Bypass back write down what you get and run the following command, if you get Bypass skip to the step “Start internet explorer…”

Set-ExecutionPolicy Bypass

Once you are done with this guide, come back to this powershell window and run the following command, replace the text MYPOLICY with the text you wrote down earlier

Set-ExecutionPolicy MYPOLICY

Start internet explorer and then close it again, this is an important step due to a function in powershell not working unless internet explorer has been started on the system at least once. I am working on an updated install script where this will hopefully not be needed.

Run the ps1 file with powershell

A ps1 file is a script file that you can run in powershell, similar to how bash works on a Linux machine. Once you have downloaded it all you have to do is right click on the file and select “Run with powershell”.

uac promt to elevate powershell script
You need to select YES here

You will get a popup asking if you want to allow powershell to make changes to your device, select yes on this. If your computer don’t have java installed, the script will download and start the installer for an open source version of java (adopt openJDK) and all you have to do is click next next next etc. Once java is installed Booksonic will continue to install itself.

Booksonic is now installed

When you see this popup it means Booksonic has been installed and is now starting up. Once you click ok a new tab will open in your browser and navigate to your Booksonic server. If you click ok a bit to quickly and the server has not started completely yet you might need to wait a minute or two and then reload the tab.

For instructions on how to use the server please see step 3 and down from the Legacy guide available here, I am currently working on a new and improved guide for this. I am also working on guides for how to install Booksonic on Linux and in the cloud using a cheap VPS from Contabo.

If you are interested in running Booksonic in the cloud I recommend renting a Contabo VPS and installing booksonic there. It starts as low as 3.99 euro for 300GB storage and 4GB ram. If you got a huge library you can get as much as 1.4TB storage for 12.99 euro
 
Obs, if you click the contabo links and rent a server I will receive a small commision at no extra cost to you, this has not influenced my decision to recommend them in any way, they are what I use personally and what the Booksonic demo is hosted on.

Share

How I upgraded the Lenovo 4 10 Plus to Android Q/10 and passed SafetyNet

Back in June last year I bought a Lenovo 4 10 Plus and upgraded it to what was then the latest version of Android (Pie/9) and made it pass safety net using magisk and a few modules. Today I have upgraded that tablet to Android Q/10 and once again passed safetynet, this is how I did it.

First of all, this guide is written more for my own documentation and requires that you have some idea about this kind of thing already, if you don’t completely understand what I am saying, DO NOT follow my guide, instead head over to this XDA thread and make sure you understand completely what is going on. Doing things wrong here can end up bricking your device and render it useless, continue at your own risk. Just as last time, I have only verified this on the L version of the tablet.

Also note that this guide is for upgrading a tablet that already has a version of TWRP installed, if you have a fully stock tablet check out the beginning of my post for upgrading to Pie/9 where I install TWRP on a stock tablet first and then come back here once you have TWRP installed.

ok, with that out of the way, lets get started.

Just as last time I begin with downloading everything I need and put it on the external SD card, it is very important to not put it on the internal SD card as we will wipe that clean!

Here is the list of what to download and which versions I used

ROM
Once again I went with a third party build of lineage that I found on XDA, this time it was a build created by Senior recognized developer codeworkx. You can find the thread for the Lineage OS 17.1 build here and I used the version that was released on 20200731.

TWRP
A new TWRP version was available for my tablet from here so I decided to install that as well, the version I installed was twrp-3.4.0-0-X704F.img

GAPPS
Just like last time I went with GAPPS from the open gapps project, make sure you select Arm64, Android 10 and Micro. The version I installed was from 20200802 but you should probably use the latest one.

Magisk
I downloaded the latest version of Magisk (v20.4) and Magiskt Manager (v7.5.1) from the Magisk GitHub release page. Don’t get it anywhere else as there are some shall we say not so legit versions floating around that you really don’t want to install.

Magisk hide props conf
Next I downloaded the latest version of the magisk hide props conf module from here, in my case it was version 5.3.0-v95

Ok now that everything was downloaded I double checked that I had saved it on the external SD card.

Next I rebooted the tablet  into recovery, selected install, changed to image and flashed the new version of TWRP that I downloaded.
The tablet then rebooted into the OS, once it did I rebooted it to TWRP again

If you want a backup of your system now is the time to take it, again make sure it is saved on the external SD card. I did not take a backup, don’t be like me.

Now it was time to clean out the old Android, hit wipe but don´t use the slide, instead hit format data and type yes. Once done, hit the back button and go to advanced wipe. Check Dalvik/ART Cache, System and Cache then swipe to wipe them. Go back to the main menu and reboot into recovery. If it asks if I want to install a TWRP app I always say no.

Once back in TWRP I began by flashing the ROM, then GAPPS and lastly Magisk, then I rebooted into system. Once again say no if it asks for installing a TWRP app.

Now I went through the setup of the tablet, I encountered a bug where the tablet would just keep looping between enter pin code and enabling the google assistant. I tried rebooting the tablet but that did not help, if this happens to you as well you can get around it by going all the way back to the start of the setup, select another language and then continue with the installation, this will let you pass the setup, then you can just change the language back to english US. Some people online seem to have been able to just switch to another version of english while some have needed to select an entierly different language, in my case I used swedish. If you use swedish as well, the setting you want to search for when changing back to english is språk or sprak, both of them will work.

Ok so now that I was back in the tablet I installed magisk manager and then headed to the magisk manager settings and made sure Magisk Hide is enabled, I also enabled that Magisk manager itself should be hidden.

Next I headed to Google Play and installed the app “Termux”, in my case it was version 0.95 but the version shouldn’t matter here.

Now I went back to magisk manager and downloaded/installed the module “Busybox for Android NDK” in my case it was version 1.31.1. Choose not to reboot your device.
Then I installed the magisk hide props conf module that I downloaded before, this time you should reboot the device

When the tablet is back up, I opened up Termux, typed su and hit enter. I allowed it root permissions and then typed props followed by enter. Follow the menu that was started like this

Edit device fingerprint -> pick a certified fingerprint -> Lenovo -> Lenovo Tab 4 10 Plus TB-X704F -> yes for reboot.

When my device was back up I ran the SafetyNet check inside Magisk Manager and saw that everything was green but when I tried to search for Netflix on Google Play it still didn’t show up. To fix this I headed in to the tablets settings, then apps, show system apps. Then clear all data for Google Play Services and Google Play. Now I rebooted the device one final time and then it was done.

The tablet is now running Android Q/10 and passes SafetyNet. One last thing to keep in mind is that SafetyNet is always updated so this might break in the future and then Magisk will probably update to fix it again etc etc. If always passing SafetyNet is really important to you I recommend looking for a new tablet with official updates.

Share
powershell

Use Powershell to create a “fake” program in the programs and features list for indexing purposes

For a reason I won’t go in to here I recently had to create a fake program in the programs and features list of a computer. One example when this might be useful is for indexing purposes but there are other usecases for it as well.

Since this list is saved in the registry adding a new program to it is easy. I tend to follow the “code should document itself” approach since I never know who might have to modify my code at a later date, to that end I decided to make a function out of this instead of adding a lot of stuff to the registry inside the main script.

If you find another usecase for this script I would be happy to hear it.

Function New-PopsFakeProgram{
<#
.SYNOPSIS
    Add a fake program to programs & features
.DESCRIPTION
    Add a fake program to programs & features
.PARAMETER Name
    The internal name
.PARAMETER DisplayName
    The name that should be shown
.PARAMETER Publisher
    The name of the publisher
.PARAMETER DisplayVersion
    The version number
.PARAMETER DisplayIcon
   Path to a display icon, can be an exe file
.PARAMETER UninstallString
    The string for uninstalling the program
.EXAMPLE
    New-PopsFakeProgram -Name "MyFakeProgram" -DisplayName "My fake program"
.NOTES
.LINK
    popeen.com/2020/03/13/use-powershell-to-create-a-fake-program-in-the-programs-and-features-list-for-indexing-purposes
#>

    Param(
        [Parameter(Mandatory=$true)]
                         [ValidateNotNullorEmpty()]
                         [string]$Name,
        [Parameter(Mandatory=$true)]
                         [ValidateNotNullorEmpty()]
                         [string]$DisplayName,
        [Parameter(Mandatory=$false)]
                         [ValidateNotNullorEmpty()]
                         [string]$Publisher = "Dummy",
        [Parameter(Mandatory=$false)]
                         [ValidateNotNullorEmpty()]
                         [string]$DisplayVersion = $(Get-Date -Format "yyyy.dd.MM.HHmm"),
        [Parameter(Mandatory=$false)]
                         [ValidateNotNullorEmpty()]
                         [string]$DisplayIcon = "C:\Windows\explorer.exe",
        [Parameter(Mandatory=$false)]
                         [ValidateNotNullorEmpty()]
                         [string]$UninstallString = "DummyUninstall"
    )

    if( -not (Test-Path -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$Name" -PathType Container) )
            {
                         New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" -Name $Name | Out-Null
            }
    New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$Name" -Name "DisplayName" -Type String -Value $DisplayName -Force | Out-Null
    New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$Name" -Name "Publisher" -Type String -Value $Publisher -Force | Out-Null
    New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$Name" -Name "DisplayVersion" -Type String -Value $DisplayVersion -Force | Out-Null
    New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$Name" -Name "DisplayIcon" -Type String -Value $DisplayIcon -Force | Out-Null
    New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$Name" -Name "UninstallString" -Type String -Value $UninstallString -Force | Out-Null

}
Function Remove-PopsFakeProgram{
<#
.SYNOPSIS
    Remove a program from programs & features
.DESCRIPTION
    Remove a program from programs & features
.PARAMETER Name
    The internal name, this is probably not the one you see in programs & features
.EXAMPLE
    Remove-PopsFakeProgram -Name "MyFakeProgram"
.NOTES
.LINK
    popeen.com/2020/03/13/use-powershell-to-create-a-fake-program-in-the-programs-and-features-list-for-indexing-purposes
#>
    Param(
        [Parameter(Mandatory=$true)]
                         [ValidateNotNullorEmpty()]
                         [string]$Name
    )
    if( Test-Path -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$Name" -PathType Container )
    {
        Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$Name" -Recurse -Force  
    }
    
}

Share

Booksonic in the media

Updated: 2020-05-11

I was recently made aware that a computer magazine had written an article about Booksonic in their holiday edition for 2019. How fun!

This lead me to do some Googling and it turns out this wasn’t the first or last time Booksonic had been featured. So I thought it could be fun to compile a list about when and where this has happened. If you have read about Booksonic somewhere not mentioned or maybe you are even planning to write about Booksonic I would love it if you let me know at [email protected] or in the comments below.

Linux Journal

Issue 281, September 2017

Maximum PC

Holiday Special 2019

Windows Help & Advice

Issue 170, January 2020

Linux Format

Issue 259, February 2020

APC

Issue 477, February 2020

Linux Welt

3/2020, April-May 2020

Share

How to read the manifest of an appx package file using Powershell

Reading the manifest of an installed appx package is easy, however today a colleague of mine was working on a custom install script for appx packages and quickly found out that Microsofts Get-AppxPackageManifest can’t be used on an actual appx file.

Some quick testing later and we now have an extended version of the function that handles already installed packages as well as appx package files.

function Get-POPSAppxPackageManifestExtended{
    
    param($Package, $User)

    if(Test-Path $Package){
        Add-Type -Assembly "System.IO.Compression.FileSystem"
        $zip = [IO.Compression.ZipFile]::OpenRead($Package)
        $file = $zip.Entries | Where-Object { $_.Name -eq "AppxManifest.xml"}
        $stream = $file.Open()

        $reader = New-Object IO.StreamReader($stream)
        $xml = [XML]$reader.ReadToEnd()

        $reader.Close()
        $stream.Close()
        $zip.Dispose()

        $xml

    }else{
        if($User){
            Get-AppxPackageManifest -Package $Package -user $User
        }else{
            Get-AppxPackageManifest -Package $Package
        }
    }

}
Share

How I upgraded the Lenovo 4 10 Plus to Android Pie/9 and passed SafetyNet

See updated guide how I upgraded to Android Q/10 here

Before you do anything listed below Please Please Please understand that if done incorrectly you will break your tablet and make it unusable. It is also important to note that not all devices with this name is the same, I have only tested this on the X704L but it would probably work the same on X704F as well, do not try this on any other tablets without first verifying with the creators that it works on your tablet.

I am writing this guide mainly as a reference for my future self so it will be on a level where you already have to know the basics of these things. If you don’t understand the steps in my guide, please head over to the XDA thread instead and have a look at their instructions for installing the OS.

I have made backups of all the files I mention in this guide as I know this type of thing tends to disappear after a few years. If any of the files / sites I link to has disappeared let me know and I will share these files. I will only share my copy of the files once the official ones are gone as I want the creators/maintainers to get the credit they deserve. By going the official route you also make sure you always get the latest versions.

The following are the steps I followed when I did it earlier this week, please note that newer versions might require different steps.

I started by installing Minimal ADB and Fastboot on my computer, this was to allow me to send commands to the tablet easier.

Next I enabled developer options on the tablet and enabled OEM unlock and USB debugging, I connected the tablet to the computer and ran the following command

adb reboot bootloader

This put the tablet in the bootloader mode where you only see a Lenovo logo. Once I saw the logo I ran another command. Keep in mind that this command will factory reset the device.

fastboot oem unlock-go

As the device is now factory reset I had to enable USB debugging again and after that it was time to start downloading the stuff I was going to install.

First off was TWRP. One thing to keep in mind here is that the TWRP states that it is for X704F and not X704L. The version I used worked fine on the L but make sure to verify that newer versions do this as well before flashing. The version I used was twrp-3.3.1-0-X704F.img.

Next it was time to download the ROM, when I write this there is only one Pie ROM available for the tablet and that is an Unofficial version of Lineage OS 16 maintained by yener90. I used the version that was released 20190609

Since Lineage comes without any Google software I also downloaded the Micro GApps pack from The Open GApps Project. Make sure to check Arm64, Android 9 .0 and Micro before hitting download.

The last thing I needed to download for now was Magisk. I downloaded the latest stable version which at the time I write this is 19.3. When I was at it I also downloaded the Magisk Manager APK as that would be required later.

Once everything was downloaded I put a copy of everything both in the root of the internal storage and at the root of an external SD card. Then I ran the command

adb reboot bootloader

Once again, remember that this will only show you the Lenovo logo, when I saw it I ran the command

fastboot flash recovery twrp-3.3.1-0-X704F.img

Once flashed I used the volume buttons to navigate the menu at the top of the screen, wen it said Recovery Mode I used the power button to select it. This booted TWRP where I selected that I want to write to system.

The first thing I did now was make a backup of everything to an external SD card so I always have a way back if I want to.

Now it was time to clean out the old Android, hit wipe but don´t use the slide, instead hit format data and type yes. Once done, hit the back button and go to advanced wipe. Check Dalvik/ART Cache, System and Cache then swipe to wipe them. Go back to the main menu and reboot into recovery. If it asks if I want to install a TWRP app I always say no.

Once back in TWRP I began by flashing the ROM, then GAPPS and lastly Magisk, then I rebooted into system. Once again say no if it asks for installing a TWRP app.

Now I went through the setup of the tablet and once done I installed the Magisk Manager apk that I downloaded earlier.

Insie Magisk manager I headed to the settings and made sure Magisk Hide was enabled and also enabled that Magisk manager itself should be hidden (this is done by regenerating a package with a random name, cool!)

I headed to Google Play and installed the app “Termux”, in my case it was version 0.72.

Then I went back to magisk manager and installed the module “Busybox for Android NDK version 1.30.1. When it was installed I rebooted the device.

Now I headed over to XDA again and downloaded “MagiskHide Props Config” version 4.0.3. Then I went back to Magisk manager and installed this as a new module and rebooted the device.

When the tablet was back up I opened up Termux and typed su and hit enter, gave it root permissions and then typed props. I followed the menu that was started like this
Edit device fingerprint -> pick a certified fingerprint -> Lenovo -> Lenovo K6 Note (7.0) -> yes for reboot.

When the device was back up I ran the SafetyNet check inside Magisk Manager and saw that everything was green but when I tried to search for Netflix on Google Play it still didn’t show up. To fix this I headed in to the tablets settings, then apps, show system apps. Then clear all data for Google Play Services and Google Play. Now I rebooted the device one final time and then it was done.

The tablet is now running Android Pie and passes SafetyNet. One last thing to keep in mind is that SafetyNet is always updated so this will probably break in the future and then Magisk will probably update to fix it again etc etc. If always passing SafetyNet is really important to you I recommend looking for a new tablet with official updates.

Share

Stickers!

Everyone loves stickers, right?

At least I do, that’s why I had some Booksonic stickers made for myself last week and since I know there are some people out there that love Booksonic as much as I do I bought a few extra.

They are vinyl stickers and the size is roughly 3.5 x 3.5 cm.

If you are interested in getting some stickers let me know below or on [email protected] Since this is something I am doing for fun and not profit I’m setting the price to pay what you want + shipping. Shipping cost is $4.

Share
Booksonic app giveaway

The Booksonic app stopped working for almost ten hours today due to bug

First of all, I want to say that I am very sorry to all of you who have been unable to use the Booksonic app today.

Second I want to get in to a bit of what actually happened as well as give a promise that I will make sure it can never happen again.

Ok, so the reason that you haven’t been able to connect to your server today is due to two things. Today at 08:05 Swedish time booksonic.org went down. This was due to a break in the fibre cable leading to the server center that is hosting it.

The second and more important thing is why this caused you not to be able to connect to your own servers. 

First of all I want to make one thing very clear, Booksonic is a selfhosted server and as such this should not happen if my servers go down, that is very important to me.

None of your data between the server and app is ever routed through booksonic.org and will never be so. That said, there are two times that Booksonic connects to my servers. One is when you send me a log file, the second is when the app checks if it has an internet connection and that’s where the problem was.

The app determines if you have an internet connection or not by checking if it can reach booksonic.org. if it can’t, it is supposed to give you a message about it and then move on. The reason this is checking my servers instead of your own booksonic server is so that it can let you know if the problem is that your booksonic server is down or that your internet is down.

What this means is that when booksonic.org went down today all that should have happened is that you should have seen a message in your app letting you know that you don’t have an internet connection but since you actually did you should have been able to use the app just fine anyway, this however  is not what happened. It turns out there is a bug in the code that checks the internet connection. 

While I haven’t been able to verify this yet as I don’t have access to a computer at the moment my guess is that the reason it messes up is because you actually got a connection response (booksonic.org is behind cloudflare) just not the one it was expecting.

This bug is now my highest priority and I will make sure that a fix for it is found and pushed to GitHub and the Booksonic beta channel (sign up on the Google play page if you are interested) before the end of the week. If for some reason I am unable to get a fix for it working before then I will temporary disable this internet checking feature until I am able to find a fix because the fact that your apps stop working when my servers go offline is simply unacceptable to me.

Update 28/4:

After running some tests I have to admit that my first guess about what was messing up the connection was wrong, it was not the internet check in the app that was buggy, it was the version check on the server.

I have released a new version of the server where this is fixed and since I was releasing a new version of the server any way I also fixed the bug where the covers would not stretch to fit.
The new version of the server is called 1.1 and can be downloaded at booksonic.org

Share