if the source_uri doesn't exist, open the browser in the project_uri
using let instead of setq
refactor, moving function into the only place it's used
added support for pagination