Skip to content

Commit

Permalink
Better deal handling code
Browse files Browse the repository at this point in the history
  • Loading branch information
benmfaul committed May 31, 2017
1 parent feb6aeb commit be5a43b
Show file tree
Hide file tree
Showing 6 changed files with 58 additions and 8 deletions.
6 changes: 3 additions & 3 deletions Campaigns/payday.json
Expand Up @@ -21,8 +21,8 @@
"adminSSL": false,
"password": "startrekisbetterthanstarwars",
"verbosity": {
"level": -3,
"nobid-reason": false
"level": -5,
"nobid-reason": true
},
"geotags": {
"states": "",
Expand Down Expand Up @@ -119,7 +119,7 @@
}, {
"name": "waardx",
"id": "waardx-id",
"bid": "/rtb/bids/waardx=com.xrtb.exchanges.Generic&usesEncodedAdm"
"bid": "/rtb/bids/waardx=com.xrtb.exchanges.Generic&!usesEncodedAdm"
}, {
"name": "intango",
"id": "intango-id",
Expand Down
11 changes: 9 additions & 2 deletions src/Google.java
@@ -1,3 +1,5 @@
import java.util.Scanner;

import javax.xml.bind.DatatypeConverter;


Expand All @@ -11,8 +13,13 @@
public class Google {

public static void main(String [] args) throws Exception {
// new Google().request();
new Google().response("ChZXUEFzekFBSU1TWUtUN05HZFFWdVFBEtUICscIChZXUEFzekFBSU1TWUtUN05HZFFWdVFBEgExGZqZmZmZmbk/IgI1NSpfaHR0cDovLzU0LjIzNC4yNTIuMjE2OjgwODAvcnRiL3dpbi9nb29nbGUvJHtBVUNUSU9OX1BSSUNFfS8wLjAvMC4wLzU1LzQxL1dQQXN6QUFJTVNZS1Q3TkdkUVZ1UUEyzwY8aW1nIHNyYz1cImh0dHA6Ly81NC4yMzQuMjUyLjIxNjo4MDgwL3J0Yi93aW4vZ29vZ2xlLzU1LzQxLyUlV0lOTklOR19QUklDRSUlL3tsYXR9L3tsb259L1dQQXN6QUFJTVNZS1Q3TkdkUVZ1UUFcIiBoZWlnaHQ9XCIxXCIgd2lkdGg9XCIxXCIgc3R5bGU9XCJkaXNwbGF5Om5vbmU7XCIvPjxpbWcgc3JjPVwiaHR0cDovLzU0LjIzNC4yNTIuMjE2OjgwODAvcGl4ZWw/YWRfaWQ9NTUmY3JlYXRpdmVfaWQ9NDFcIiBoZWlnaHQ9XCIxXCIgd2lkdGg9XCIxXCIgc3R5bGU9XCJkaXNwbGF5Om5vbmU7XCIvPjxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPnZhciBhZG9zID0gYWRvcyB8fCB7fTthZG9zLnJ1biA9IGFkb3MucnVuIHx8IFtdOy8qIGxvYWQgcGxhY2VtZW50IGZvciBhY2NvdW50OiBDMVgsIGNhbXBhaWduOiBCaWRkZXIzX1Rlc3QsIGZsaWdodDogQURYLCBjcmVhdGl2ZTogQmlkZGVyM19BRFhfMzAweDI1MCwgc2l0ZTogRG91YmxlQ2xpY2sgQWRFeGNoYW5nZSwgc2l6ZTogTWVkaXVtIFJlY3RhbmdsZSAtIDMwMHB4IGJ5IDI1MHB4Ki9hZG9zLnJ1bi5wdXNoKGZ1bmN0aW9uKCkge2Fkb3NfYWRkSW5saW5lUGxhY2VtZW50KDk3NDcsIDQyMTMyMSwgNSkuc2V0RmxpZ2h0Q3JlYXRpdmVJZCgzNTY2ODY4KS5zZXRSZWRpcmVjdFVybCgnJSVDTElDS19VUkxfVU5FU0MlJWh0dHA6Ly81NC4yMzQuMjUyLjIxNjo4MDgwL3JlZGlyZWN0P2FkX2lkPTU1JmNyZWF0aXZlX2lkPTQxJnVybD0nKS5sb2FkSW5saW5lKCk7fSk7PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCIgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuYWR6ZXJrLm5ldC9hZG9zLmpzXCI+PC9zY3JpcHQ+Og5jMWV4Y2hhbmdlLmNvbUJKaHR0cHM6Ly9zdGF0aWMuYWR6ZXJrLm5ldC9BZHZlcnRpc2Vycy81YzM0ZGQ0MWEwNTc0MTNkYTdiYzk4MWJmNmNlMDM0OC5wbmdKAjU1UgI0MYABrAKIAfoBEglnb29nbGUtaWQaFldQQXN6QUFJTVNZS1Q3TkdkUVZ1UUEiA1VTRA==");
Scanner sc = new Scanner(System.in);
while(true) {
System.out.print(">>>");;
String line = sc.nextLine();
new Google().response(line);
}
//new Google().response("ChZXUEFzekFBSU1TWUtUN05HZFFWdVFBEtUICscIChZXUEFzekFBSU1TWUtUN05HZFFWdVFBEgExGZqZmZmZmbk/IgI1NSpfaHR0cDovLzU0LjIzNC4yNTIuMjE2OjgwODAvcnRiL3dpbi9nb29nbGUvJHtBVUNUSU9OX1BSSUNFfS8wLjAvMC4wLzU1LzQxL1dQQXN6QUFJTVNZS1Q3TkdkUVZ1UUEyzwY8aW1nIHNyYz1cImh0dHA6Ly81NC4yMzQuMjUyLjIxNjo4MDgwL3J0Yi93aW4vZ29vZ2xlLzU1LzQxLyUlV0lOTklOR19QUklDRSUlL3tsYXR9L3tsb259L1dQQXN6QUFJTVNZS1Q3TkdkUVZ1UUFcIiBoZWlnaHQ9XCIxXCIgd2lkdGg9XCIxXCIgc3R5bGU9XCJkaXNwbGF5Om5vbmU7XCIvPjxpbWcgc3JjPVwiaHR0cDovLzU0LjIzNC4yNTIuMjE2OjgwODAvcGl4ZWw/YWRfaWQ9NTUmY3JlYXRpdmVfaWQ9NDFcIiBoZWlnaHQ9XCIxXCIgd2lkdGg9XCIxXCIgc3R5bGU9XCJkaXNwbGF5Om5vbmU7XCIvPjxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPnZhciBhZG9zID0gYWRvcyB8fCB7fTthZG9zLnJ1biA9IGFkb3MucnVuIHx8IFtdOy8qIGxvYWQgcGxhY2VtZW50IGZvciBhY2NvdW50OiBDMVgsIGNhbXBhaWduOiBCaWRkZXIzX1Rlc3QsIGZsaWdodDogQURYLCBjcmVhdGl2ZTogQmlkZGVyM19BRFhfMzAweDI1MCwgc2l0ZTogRG91YmxlQ2xpY2sgQWRFeGNoYW5nZSwgc2l6ZTogTWVkaXVtIFJlY3RhbmdsZSAtIDMwMHB4IGJ5IDI1MHB4Ki9hZG9zLnJ1bi5wdXNoKGZ1bmN0aW9uKCkge2Fkb3NfYWRkSW5saW5lUGxhY2VtZW50KDk3NDcsIDQyMTMyMSwgNSkuc2V0RmxpZ2h0Q3JlYXRpdmVJZCgzNTY2ODY4KS5zZXRSZWRpcmVjdFVybCgnJSVDTElDS19VUkxfVU5FU0MlJWh0dHA6Ly81NC4yMzQuMjUyLjIxNjo4MDgwL3JlZGlyZWN0P2FkX2lkPTU1JmNyZWF0aXZlX2lkPTQxJnVybD0nKS5sb2FkSW5saW5lKCk7fSk7PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCIgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuYWR6ZXJrLm5ldC9hZG9zLmpzXCI+PC9zY3JpcHQ+Og5jMWV4Y2hhbmdlLmNvbUJKaHR0cHM6Ly9zdGF0aWMuYWR6ZXJrLm5ldC9BZHZlcnRpc2Vycy81YzM0ZGQ0MWEwNTc0MTNkYTdiYzk4MWJmNmNlMDM0OC5wbmdKAjU1UgI0MYABrAKIAfoBEglnb29nbGUtaWQaFldQQXN6QUFJTVNZS1Q3TkdkUVZ1UUEiA1VTRA==");
}

public Google() {
Expand Down
4 changes: 2 additions & 2 deletions src/com/xrtb/commands/AddCampaign.java
Expand Up @@ -4,8 +4,8 @@
import com.xrtb.common.Campaign;

/**
* A class that is used to encapsulate a REDIS command for adding a campaign to the bidder.
* GSON will be used to create the structure.
* A class that is used to encapsulate a 0MQ command for adding a campaign to the bidder.
* Jackson will be used to create the structure.
* @author Ben M. Faul
*
*/
Expand Down
2 changes: 1 addition & 1 deletion src/com/xrtb/commands/DeleteCampaign.java
Expand Up @@ -23,7 +23,7 @@ public DeleteCampaign() {
* Delete a campaign from the database.
* @param to String. The bidder that will host the command.
* @param owner String. The owner of the campaign.
* @param id String. The casmpaign adid to delete.
* @param id String. The campaign adid to delete.
*/
public DeleteCampaign(String to, String owner, String id) {
super(to);
Expand Down
3 changes: 3 additions & 0 deletions src/com/xrtb/common/Creative.java
Expand Up @@ -5,8 +5,10 @@
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

import com.aerospike.redisson.AerospikeHandler;
import com.fasterxml.jackson.annotation.JsonIgnore;
Expand Down Expand Up @@ -165,6 +167,7 @@ public Deal findDeal(String id) {
public Deal findDeal(List<String> ids) {
if (deals == null || deals.size() == 0)
return null;

for (int i = 0; i < ids.size(); i++) {
Deal d = findDeal(ids.get(i));
if (d != null)
Expand Down
40 changes: 40 additions & 0 deletions src/com/xrtb/common/Deals.java
@@ -0,0 +1,40 @@
package com.xrtb.common;

import java.util.List;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

import com.xrtb.tools.XORShiftRandom;

public class Deals extends ArrayList<Deal> {

private static XORShiftRandom rand = new XORShiftRandom();

private Map<String,Deal> map = new HashMap();
private Set<String> s2;

public Deals() {

}

public Deal findDeal(List<String> ids) {
Set<String> intersection = new HashSet<String>(ids); // use the copy constructor
intersection.retainAll(s2);
if (intersection.size()==0)
return null;
int x = rand.random(intersection.size());
List<String> nameList = new ArrayList<String>(intersection);
String key = nameList.get(x);
return map.get(key);
}

@Override
public boolean add(Deal d) {
s2.add(d.id);
map.put(d.id,d);
return add(d);
}
}

0 comments on commit be5a43b

Please sign in to comment.