summaryrefslogtreecommitdiff
path: root/bucky2/rest/topsy-nndb.pl
diff options
context:
space:
mode:
Diffstat (limited to 'bucky2/rest/topsy-nndb.pl')
-rwxr-xr-xbucky2/rest/topsy-nndb.pl109
1 files changed, 109 insertions, 0 deletions
diff --git a/bucky2/rest/topsy-nndb.pl b/bucky2/rest/topsy-nndb.pl
new file mode 100755
index 0000000..c749a71
--- /dev/null
+++ b/bucky2/rest/topsy-nndb.pl
@@ -0,0 +1,109 @@
+#!/usr/bin/perl
+use lib "../lib";
+use Rest::Topsy;
+use Data::Dumper;
+my $topsy = new Rest::Topsy;
+
+#my $tasks = initialize_names($topsy);
+#save_task_history($topsy, $tasks);
+#exit;
+
+my $tasks = load_task_history($topsy);
+#print Dumper($tasks);
+#exit;
+my $i = 0;
+# foreach my $task (sort {$a->{'date'} <=> $b->{'date'}} @$tasks)
+foreach my $task (sort task_sort @$tasks)
+ {
+ my $tracking_data = $topsy->topsy_search($task->{'name'});
+ foreach my $k (keys %$tracking_data)
+ { $task->{$k} = $tracking_data->{$k}; }
+ $task->{'date'} = time;
+ if ($i++ == 20)
+ {
+ save_task_history($topsy, $tasks);
+ $i = 0;
+ }
+ sleep 35 + (int rand 20);
+ }
+save_task_history($topsy, $tasks);
+
+exit;
+
+sub task_sort
+ {
+ $b->{'hour'} <=> $a->{'hour'} ||
+ $b->{'day'} <=> $a->{'day'} ||
+ $b->{'week'} <=> $a->{'week'} ||
+ $b->{'month'} <=> $a->{'month'} ||
+ $b->{'all'} <=> $a->{'all'} ||
+ $a->{'date'} <=> $b->{'date'}
+ }
+sub initialize_names
+ {
+ my ($self) = @_;
+ my $data = $self->read_data('../tmp/nndb/all-names-living.txt');
+ my @lines = split "\n", $data;
+ my $names = {};
+ foreach my $line (@lines)
+ {
+ next unless $line;
+ my ($id, $name) = split "\t", $line;
+ if (exists ($names->{$name}))
+ { $names->{$name} = -1 * $id; }
+ else
+ { $names->{$name} = $id; }
+ }
+ my $tasks = [];
+ foreach my $name (keys %$names)
+ {
+ my $hash = {};
+ $hash->{'id'} = abs $names->{$name};
+ $hash->{'name'} = $name;
+ $hash->{'date'} = -1;
+ if ($names->{$name} < 1)
+ {
+ $hash->{'doppelganger'} = 1;
+ }
+ push @$tasks, $hash;
+ }
+ return $tasks;
+ }
+sub save_task_history
+ {
+ my ($self, $tasks) = @_;
+ my @keys = qw[id name date doppelganger all month week day hour];
+ my @lines;
+ foreach my $task (@$tasks)
+ {
+ my @input;
+ for (my $i = 0; $i < @keys; $i++)
+ {
+ push @input, $task->{$keys[$i]};
+ }
+ my $line = join "\t", @input;
+ push @lines, $line;
+ }
+ my $data = join "\n", @lines;
+ $self->write_data("../tmp/nndb/tasks.txt", $data);
+ }
+sub load_task_history
+ {
+ my ($self) = @_;
+ my $data = $self->read_data('../tmp/nndb/tasks.txt');
+ my @lines = split "\n", $data;
+ my @keys = qw[id name date doppelganger all month week day hour];
+ my $tasks = [];
+ foreach my $line (@lines)
+ {
+ next unless $line;
+ my (@input) = split "\t", $line;
+ my $hash = {};
+ for (my $i = 0; $i < @input; $i++)
+ {
+ $hash->{$keys[$i]} = $input[$i];
+ }
+ push @$tasks, $hash;
+ }
+ return $tasks;
+ }