adselect.iface package

adselect.iface.protocol module

adselect.iface.protocol

adselect.iface.server module

class adselect.iface.server.AdSelectIfaceServer[source]

Bases: fastjsonrpc.server.JSONRPCServer

JSON-RPC endpoint.

jsonrpc_banner_select(**kwargs)[source]

JSON-RPC banner_select method handler.

Parameters:impression_param_list – List of impression parameters
Returns:Selected banners data in JSON.
jsonrpc_campaign_delete(**kwargs)[source]

JSON-RPC campaign_delete method handler.

Parameters:campaign_id_list – List of campaign identifiers.
Returns:True
jsonrpc_campaign_update(**kwargs)[source]

JSON-RPC campaign_update method handler.

Parameters:campaign_data_list – List of campaign data.
Returns:True
jsonrpc_impression_add(**kwargs)[source]

JSON-RPC impression_add method handler.

Parameters:impressions_data_list – List of impression data.
Returns:True
jsonrpc_impression_payment_add(**kwargs)[source]

JSON-RPC impression_add method handler.

Parameters:impressions_data_list – List of impression data.
Returns:True
adselect.iface.server.configure_iface(port=8011, host='127.0.0.1')[source]

Set up Twisted reactor to listen on TCP.

Parameters:port – Listening port.
Returns:Listening reactor.

adselect.iface.utils module

adselect.iface.utils.FILTER_SEPARATOR = '--'

Filter separator, used in range filters (see protocol or api documentation).

adselect.iface.utils.add_impression(imobj, increment=True)[source]

Record the impression, by passing it to the Statistics module.

Parameters:
  • imobj – Impression document.
  • increment – Increment views (True or False).
Returns:

adselect.iface.utils.create_or_update_campaign(*args, **kwargs)[source]

Create or update (if existing) campaign data, asynchronously. The data can contain banners.

  1. Add campaign data.
  2. Remove old banners for this campaign.
  3. Create or update banner data, if included with the campaign data.
Parameters:cmpobj – Campaign document.
Returns:Deferred instance of pymongo.results.UpdateResult.
adselect.iface.utils.delete_campaign(*args, **kwargs)[source]

Remove campaign and banners for that campaign.

Parameters:campaign_id – Identifier of the campaign.
Returns:Deferred.
adselect.iface.utils.merge_two_dicts(x, y)[source]

Merges two dicts and returns it as new dict.

Parameters:
  • x – dict
  • y – dict
Returns:

merged dict

adselect.iface.utils.select_banner(*args, **kwargs)[source]

Select_banner function should work as follow:

  1. Select banners which are paid a lot.
  2. Some percent of selected banners should be new banners without payments stats
  3. The same user shouldn’t take the same banners every time.
Parameters:banners_requests – Iterable of banner documents.
Returns:
adselect.iface.utils.validate_banner_with_banner_request(*args, **kwargs)[source]

Make sure the banner is ok for this request.

  1. Does the banner exist?
  2. Does the campaign for this banner exist?
  3. Is the campaign active?
  4. Are banner keywords ok for this campaign?
Parameters:
  • banner_request
  • proposed_banner_id
Returns:

adselect.iface.utils.validate_exclude_keywords(filters_dict, keywords)[source]

Validate required and excluded keywords.

Parameters:
  • filters_dict – Required and excluded keywords
  • keywords – Keywords being tested.
Returns:

True or False

adselect.iface.utils.validate_keywords(filters_dict, keywords)[source]

Validate required and excluded keywords.

Parameters:
  • filters_dict – Required and excluded keywords
  • keywords – Keywords being tested.
Returns:

True or False

adselect.iface.utils.validate_require_keywords(filters_dict, keywords)[source]

Validate required and excluded keywords.

Parameters:
  • filters_dict – Required and excluded keywords
  • keywords – Keywords being tested.
Returns:

True or False