var meta = module.parent.require('./meta');. Then, meta.config may have the configuration (might need to double-check that). var nconf = module.parent.require('nconf'); will allow you to hook into the configuration utility we use: nconf.get('url') returns the full url.
Unfortunately not -- our hooks are designed to keep the information passed in to a minimum.
The posts.parse hook is called whenever a piece of content needs to be "parsed like a post". It is not strictly a hook that is called whenever a topic is loaded. Perhaps you can look into filter:post.getPosts?
You would need to make a plugin to listen for a socket event, and in the widget js send the needed data to verify the request server-side. After adjusting the reputation and sending the new rep back, you probably want to make a db key to record the last action taken, such as how core uses pid:x:upvote