Product Engineer, CTO & a Beer Enthusiast
Experiments, thoughts and scripts documented for posterity.
Dec, 2012
Demo site coming soon..
using (var _browser = new IE("http://www.gettyimages.com"))
{
topCelebs.ForEach(s =>
{
var keywordEvent = new Keyword();
keywordEvent.Term = s.Trim().ToLower();
_browser.TextField(Find.ById("txtPhrase")).Clear();
_browser.TextField(Find.ById("txtPhrase")).TypeText(keywordEvent.Term);
var editorialChkfield = _browser.CheckBox(Find.ById("cbxEditorial"));
if (!editorialChkfield.Checked)
editorialChkfield.Click();
_browser.Button(Find.ById("btnSearch")).Click();
if (_browser.Link(Find.ById("ctl00_ctl00_ctl11_gcc_mc_re_flEvent_lnkSeeMore")).Exists)
{
_browser.Link(Find.ById("ctl00_ctl00_ctl11_gcc_mc_re_flEvent_lnkSeeMore")).Click();
_browser.Div(Find.ById("ctl00_ctl00_ctl11_gcc_mc_re_flEvent_refinementContent")).WaitUntilExists();
var filterContentDiv = _browser.Div(Find.ById("ctl00_ctl00_ctl11_gcc_mc_re_flEvent_refinementContent"));
var eventIds = new List();
foreach (var link in filterContentDiv.Links.Filter(Find.ByClass("refineItem")))
{
var splitList = link.OuterHtml.Split('\'');
if (splitList.Length > 2)
eventIds.Add(int.Parse(splitList[1]));
}
//do something with captured eventId's like save to DB
}
});
}
//get 50 events at a time instead of making individual calls to Connect API
for (int i = 0; i < eventIdList.Count; i = i + 50)
{
var geteventRequest = new connectSv.GetEventsRequestBody();
geteventRequest.EventIds = eventIdList.Skip(i).Take(50).ToList();
var eventResponse = operations.GetEventInfo(geteventRequest, session.TokenResponse.Token);
if (eventResponse != null && eventResponse.ResponseHeader.Status.Equals("success"))
{
eventResponse.GetEventsResult.Events.ForEach(ev =>
{
// save event information to DB
});
}
}
var timeLine = new Timeline();
timeLine.headline = "{Re}Search - Images from GettyImages";
timeLine.type = "default";
timeLine.text = "<form class='form-wrapper cf' style='top:35%;position:absolute;'>" +
"<input type='text' id='autoCompleteInput' placeholder='Search here...'>" +
"<button type='submit'>Search</button>" +
"</form>";
//provide a default start date
timeLine.startDate = "2010,12,29";
timeLine.date = new List<Date>();
var eInfos = GetEvents();
eInfos.ForEach(e =>
{
if (e.StartDate > DateTime.MinValue && e.EventId > 0)
{
timeLine.date.Add(new Date()
{
startDate = e.StartDate.ToString("yyyy,MM,dd"),
headline = e.EventName,
eventId = e.EventId,
text = string.IsNullOrEmpty(e.Description) ? e.EventName : e.Description,
asset = new Asset()
{
//media = e.RepresentativeImageId,
thumbnail = e.RepresentativeImageId,
caption = e.EventName,
credit = "GettyImages"
}
});
}
});