Great project! I just looked into your code because I was interested in extending it for Germany.
Unfortunately, I couldn't find an official, regularly updated, and free source for the required information. Even the German postal service wants to charge money for the data :-(
However, what I could find was a resource that would (theoretically) allow your tool to be easily extended to all (...or at least most?) countries in the world: https://www.geonames.org/
Great project! I just looked into your code because I was interested in extending it for Germany. Unfortunately, I couldn't find an official, regularly updated, and free source for the required information. Even the German postal service wants to charge money for the data :-(
However, what I could find was a resource that would (theoretically) allow your tool to be easily extended to all (...or at least most?) countries in the world: https://www.geonames.org/
Looking into their exports for German cities at http://download.geonames.org/export/zip/ left a good first impression; they might even offer CSV exports?
You might want to look into the GeoNames database as well.