This repository was archived by the owner on Jul 12, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathKeywordStore.pm
More file actions
127 lines (97 loc) · 2.42 KB
/
Copy pathKeywordStore.pm
File metadata and controls
127 lines (97 loc) · 2.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
package KeywordStore;
use strict;
use warnings;
use Data::Dumper;
use Misc;
# how data is stored in system
use DBI;
our $dbh;
sub connect()
{
my $dbh_self = DBI->connect("dbi:SQLite:dbname=keyworddb", "", "");
$dbh = $dbh_self;
return $dbh_self;
}
sub get_keywords($)
{
my $dbh = shift;
my @keywords;
my $sth = $dbh->prepare("SELECT keyword FROM keywords");
$sth->execute();
while (my $ref = $sth->fetchrow_hashref()) {
push @keywords, $ref->{keyword};
}
warn Dumper(\@keywords);
return \@keywords;
}
sub add_keyword($$)
{
my ($dbh, $keyword) = @_;
my $sth = $dbh->prepare('INSERT INTO keywords (keyword) VALUES (?)');
$sth->execute($keyword);
}
sub del_keyword($$)
{
my ($dbh, $keyword) = @_;
my $sth = $dbh->prepare('DELETE FROM keywords WHERE keyword = ?');
$sth->execute($keyword);
}
sub set_ranks($$$$$)
{
my ($dbh, $keyword, $date, $se, $rank) = @_;
my $sth = $dbh->prepare("INSERT INTO records (keyword, date, se, rank) VALUES (?, ?, ?, ?)");
$sth->execute($keyword, $date, $se, $rank);
return;
}
sub get_ranks($$$$)
{
my ($dbh, $keyword, $date, $se) = @_;
my $sth = $dbh->prepare("SELECT max(rank) AS rank FROM records WHERE keyword = ? AND date = ? AND se = ?");
$sth->execute($keyword, $date, $se);
warn($keyword, $date, $se);
while (my $ref = $sth->fetchrow_hashref()) {
warn Dumper($ref);
return $ref->{rank};
}
print "N/A\n";
return undef;
}
sub get_domain($)
{
my ($dbh) = @_;
my $sth = $dbh->prepare('SELECT * FROM domains');
$sth->execute;
while (my $ref = $sth->fetchrow_hashref()) {
return $ref->{domain};
}
return 'Please input your site domain here';
}
sub set_domain($$)
{
my ($dbh, $domain) = @_;
my $sth = $dbh->prepare('DELETE FROM domains');;
$sth->execute();
$sth = $dbh->prepare('INSERT INTO domains (domain) VALUES (?)');
$sth->execute($domain);
return;
}
sub get_dates($)
{
my ($dbh) = @_;
my $sth = $dbh->prepare("SELECT DISTINCT date AS d FROM records");
$sth->execute();
my @dates;
my $exist = undef;
my $today = Misc::get_current_date();
while (my $ref = $sth->fetchrow_hashref) {
push @dates, $ref->{d};
if ($ref->{d} eq $today) {
$exist = 1;
}
}
unless ($exist) {
push @dates, $today;
}
return \@dates;
}
1;