-
Notifications
You must be signed in to change notification settings - Fork 0
/
RussianElectionResultsScraper.sln.ps1
69 lines (56 loc) · 2.57 KB
/
RussianElectionResultsScraper.sln.ps1
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
$global:projectName = "RussianElectionResultsScraper.Console"
$global:webProjectName = "RussianElectionResultsScraper.Web"
$global:connectionString = '"Data Source=localhost;Initial Catalog=erp;Trusted_Connection=true"'
$global:connectionString2 = '"Data Source=localhost;Initial Catalog=erp2;Trusted_Connection=true"'
$global:url2 = '"http://localhost:62457/database"'
function global:Check( [string]$electionId )
{
RunApplicationProject `
-ProjectName $projectName `
-CommandLine "check --connectionString=$connectionString --election=$electionId"
}
function global:Scrape( [string]$electionId )
{
$private:url = Get-ElectionRootUrl( $electionId )
$private:config = Get-Config( $electionId )
RunApplicationProject `
-ProjectName $projectName `
-CommandLine "scrape --connectionString=$connectionString --config=$config --url=$url --recursive --cache"
}
function global:Upgrade()
{
RunApplicationProject `
-ProjectName $projectName `
-CommandLine "database:init --connectionString=$connectionString2 --provider SqlServer2008"
}
function global:UpdateConfig( [string]$electionId )
{
$private:config = Get-Config( $electionId )
RunApplicationProject `
-ProjectName $projectName `
-CommandLine "update-config --connectionString=$connectionString2 --config=$config"
}
function global:Web( [bool]$underDebugger )
{
RunWebApplicationProject `
-ProjectName $webProjectName `
}
function global:SendData()
{
RunApplicationProject `
-ProjectName $projectName `
-CommandLine "database:send-data --connectionString=$connectionString --destination=$url2"
}
function global:Get-Config( [Parameter(Mandatory=$true)][string] $electionId )
{
$private:configDir = Split-Path -Parent ( ( Get-Project $projectName ).FullName )
return '"' + ( Join-Path $configDir "$electionId.config" ) + '"'
}
function global:Get-ElectionRootUrl( [Parameter(Mandatory=$true)][string] $electionId )
{
switch ( $electionId.ToLower() )
{
"pres2008" { return '"http://www.vybory.izbirkom.ru/region/region/izbirkom?action=show&root=1&tvd=100100022249920&vrn=100100022176412®ion=0&global=1&sub_region=0&prver=0&pronetvd=null&vibid=100100022249920&type=226"' }
"pres2012" { return '"http://www.vybory.izbirkom.ru/region/region/izbirkom?action=show&root=1&tvd=100100031793509&vrn=100100031793505®ion=0&global=1&sub_region=0&prver=0&pronetvd=null&vibid=100100031793509&type=226"' }
}
}