コード例 #1
0
def AddBasicInformation(driver, eventObj):
    # Add Basic Information
    helper.ClickElementFromTagAndText(driver, "button", "Create a Sign Up")
    helper.PauseForEffect(SIGN_UP_GENIUS_TIMEOUT)
    titleID = "signuptitle"
    selectGroupID = "selectgroup"
    selectTypeID = "selecttype"
    categoriesID = "searchCategories"
    if not helper.HasPageLoadedIDCheck(driver, SIGN_UP_GENIUS_TIMEOUT,
                                       titleID):
        print("Page has not loaded in time")
        return eventURL
    driver.find_element_by_id(titleID).click()
    pyautogui.write(eventObj["title"])
    select = Select(driver.find_element_by_id(selectGroupID))
    select.select_by_visible_text(eventObj["group"])
    select = Select(driver.find_element_by_id(selectTypeID))
    select.select_by_visible_text(eventObj["type"])
    select = Select(driver.find_element_by_id(categoriesID))
    select.select_by_visible_text(eventObj["categories"])
    Scroll(100, 5)
    saveAndContiueText = "Save and Continue"
    helper.ClickElementFromTagAndText(driver, "span", saveAndContiueText)
    helper.PauseForEffect(SIGN_UP_GENIUS_TIMEOUT)
    return driver.current_url
コード例 #2
0
def addAssist(driver, eventObj):
    assistEventLink = "Assist"
    action = ActionChains(driver)
    attendEventLink = driver.find_element_by_partial_link_text(assistEventLink)
    action.click(on_element=attendEventLink)
    action.perform()

    driver.switch_to.window(driver.window_handles[-1])
    addLeadershipButtonID = "reviews_item_form_button"
    if not helper.HasPageLoadedIDCheck(driver, REALITY_HUB_TIMEOUT,
                                       addLeadershipButtonID):
        print("Page has not loaded in time")
        return
    eventDateID = "date_191"
    eventAttendanceID = "number_224"
    textAreaID = "textarea_195"
    driver.find_element_by_id(eventDateID).send_keys(eventObj["date"])
    driver.find_element_by_id(eventAttendanceID).send_keys(
        eventObj["attendance"])
    driver.find_element_by_id(textAreaID).send_keys(eventObj["description"])

    if "photo" in eventObj:
        addPhotoAssist(driver, eventObj["photo"])
    helper.PauseForEffect(REALITY_HUB_TIMEOUT)
    driver.find_element_by_id(addLeadershipButtonID).click()
    helper.PauseForEffect(REALITY_HUB_TIMEOUT)

    # Only Close the TAB
    driver.close()
コード例 #3
0
def addBlog(driver, eventObj):
    blogEventLink = "Blog"
    action = ActionChains(driver)
    attendEventLink = driver.find_element_by_partial_link_text(blogEventLink)
    action.click(on_element=attendEventLink)
    action.perform()

    driver.switch_to.window(driver.window_handles[-1])
    addLeadershipButtonID = "reviews_item_form_button"
    if not helper.HasPageLoadedIDCheck(driver, REALITY_HUB_TIMEOUT,
                                       addLeadershipButtonID):
        print("Page has not loaded in time")
        return
    blogDateID = "date_381"
    blogNameID = "textField_382"
    blogTitleID = "textField_383"
    linkID = "link_385"
    textAreaID = "textarea_386"
    driver.find_element_by_id(blogDateID).send_keys(eventObj["date"])
    driver.find_element_by_id(blogNameID).send_keys(eventObj["name"])
    driver.find_element_by_id(blogTitleID).send_keys(eventObj["title"])
    helper.ClearAndAddElement(driver, linkID, eventObj["link"])
    driver.find_element_by_id(textAreaID).send_keys(eventObj["description"])

    helper.PauseForEffect(REALITY_HUB_TIMEOUT)
    driver.find_element_by_id(addLeadershipButtonID).click()
    helper.PauseForEffect(REALITY_HUB_TIMEOUT)

    # Only Close the TAB
    driver.close()
コード例 #4
0
ファイル: nextdoor.py プロジェクト: aaprabhu1992/eventCreator
def basicPage(driver, eventObj):
    neighborText = "Choose neighbors"
    helper.ClickElementFromTagAndText(driver, "span", neighborText)
    helper.PauseForEffect(1)
    #Summer Lake + Nearby
    if eventObj["neighborType"] == "Summer Lake":
        helper.ClickElementFromTagAndText(driver, "label",
                                          eventObj["neighborType"], True)
    else:
        helper.ClickElementFromTagAndText(driver, "label",
                                          eventObj["neighborType"], True)
        helper.ClickElementFromTagAndText(driver, "button", "Next")

    neighborText = "Choose category"
    helper.ClickElementFromTagAndText(driver, "span", neighborText)
    helper.PauseForEffect(1)
    #Classes
    helper.ClickElementFromTagAndText(driver, "label",
                                      eventObj["categoryType"])

    driver.find_element_by_xpath(
        '//input[@data-testid="event-form-subject"]').send_keys(
            eventObj["title"])
    driver.find_element_by_xpath(
        '//textarea[@data-testid="event-form-body"]').send_keys(
            eventObj["description"])
    driver.find_element_by_xpath(
        '//button[@data-testid="event-form-next-button"]').click()
コード例 #5
0
def AddPublish(driver, eventObj):
    helper.PauseForEffect(MEDIUM_PAUSE)
    for i in range(0, TAB_COUNT_PUBLISH):
        pyautogui.press(["tab"])
    helper.PauseForEffect(SMALL_PAUSE)
    pyautogui.press(["space"])
    helper.PauseForEffect(SIGN_UP_GENIUS_TIMEOUT)
    element = driver.find_element_by_partial_link_text(
        "https://www.signupgenius")
    return element.text
コード例 #6
0
def CreateTickets(driver, eventObj):
    helper.PauseForEffect(EVENTBRITE_TIMEOUT)
    if eventObj["type"] == "Free":
        helper.ClickElementFromTagAndText(driver, "div", "Free")
        quantityID = "ticket-quantity"
        driver.find_element_by_id(quantityID).send_keys(eventObj["amount"])
    else:
        print("Other Types not supported")
    helper.ClickElementFromTagAndText(driver, "button", "Save")
    helper.PauseForEffect(EVENTBRITE_TIMEOUT)
コード例 #7
0
def CreateAndRecord(inputFileName, inputDate, totalTime):
    fileName = CreateNewKMLFile(inputFileName, inputDate)
    print("Opening File")
    helper.PauseForEffect(helper.SMALL_PAUSE)
    print(os.path.join(os.getcwd(), "StartPoint.kml"))
    OpenFile(os.path.join(os.getcwd(), "StartPoint.kml"))
    helper.PauseForEffect(helper.SMALL_PAUSE)
    OpenFile(fileName)
    helper.PauseForEffect(helper.SMALL_PAUSE)
    RecordTour(fileName, totalTime)
    helper.PauseForEffect(helper.SMALL_PAUSE)
    # Check Every Few Interval if the recording has stopped
    while not EndReached():
        helper.PauseForEffect(helper.MEDIUM_PAUSE)
    CleanUp()
コード例 #8
0
def CreateOnlinePage(driver, eventObj):
    helper.PauseForEffect(EVENTBRITE_TIMEOUT)
    if "video" in eventObj:
        Scroll(-100, 5)
        helper.ClickElementFromTagAndText(driver, "span", "Add video")
        Scroll(100, 5)
        videoLinkID = "video-url-0"
        driver.find_element_by_id(videoLinkID).send_keys(eventObj["video"])
    if "link" in eventObj:
        Scroll(-100, 5)
        helper.ClickElementFromTagAndText(driver, "span", "Add link")
        Scroll(100, 5)
        linkTitleID = "file-name-0"
        linkLinkID = "file-url-0"
        driver.find_element_by_id(linkTitleID).send_keys(eventObj["link"]["title"])
        driver.find_element_by_id(linkLinkID).send_keys(eventObj["link"]["link"])
    helper.ClickElementFromTagAndText(driver, "button", "Save")
    helper.PauseForEffect(EVENTBRITE_TIMEOUT)
コード例 #9
0
def CleanUp():
    x, y = helper.LocateImage("./common/tempPlacesNotSelected.png")
    if x != None and y != None:
        helper.ClickAndWait(x, y, helper.SMALL_PAUSE)
        pyautogui.click(button='right')
        pyautogui.press(["down", "down", "down"])
        pyautogui.press(["enter"])
        helper.PauseForEffect(helper.SMALL_PAUSE)
        pyautogui.press(["enter"])
コード例 #10
0
def CreateOrderConfirmation(driver, eventObj, signUpGeniusLink):
    helper.PauseForEffect(EVENTBRITE_TIMEOUT)
    textBoxName = "group-order_confirmation-confirmation_page_message"
    confirm = eventObj["confirm"]
    confirm = confirm.replace("$LINK$", signUpGeniusLink)
    driver.find_element_by_name(textBoxName).send_keys(confirm)
    Scroll(-100, 10)
    emailBoxID = "tinymce"
    driver.switch_to_frame(0)
    email = eventObj["email"]
    email = confirm.replace("$LINK$", signUpGeniusLink)
    driver.find_element_by_xpath('html/body').send_keys(email)
    driver.switch_to_default_content()
    pyautogui.press(["tab"])
    pyautogui.press(["tab"])
    pyautogui.press(["tab"])
    pyautogui.press(["tab"])
    pyautogui.press(["enter"])
    helper.PauseForEffect(EVENTBRITE_TIMEOUT)
コード例 #11
0
def addResource(driver, eventObj):
    blogEventLink = "Resource"
    action = ActionChains(driver)
    attendEventLink = driver.find_element_by_partial_link_text(blogEventLink)
    action.click(on_element=attendEventLink)
    action.perform()

    driver.switch_to.window(driver.window_handles[-1])
    addLeadershipButtonID = "reviews_item_form_button"
    if not helper.HasPageLoadedIDCheck(driver, REALITY_HUB_TIMEOUT,
                                       addLeadershipButtonID):
        print("Page has not loaded in time")
        return
    resourceDateID = "date_406"
    resourceNameID = "textField_407"
    linkID = "link_410"
    textAreaID = "textarea_409"
    driver.find_element_by_id(resourceDateID).send_keys(eventObj["date"])
    driver.find_element_by_id(resourceNameID).send_keys(eventObj["name"])
    helper.ClearAndAddElement(driver, linkID, eventObj["link"])
    driver.find_element_by_id(textAreaID).send_keys(eventObj["description"])

    # Radio Button
    elements = driver.find_elements_by_tag_name("label")
    for elem in elements:
        if elem.text == eventObj["type"]:
            elem.click()

    # Climate Justice Question
    justiceID = ""
    if eventObj["justice"] == "yes":
        justiceID = "checkboxes_450_0"
    if eventObj["justice"] == "no":
        justiceID = "checkboxes_450_1"
    driver.find_element_by_id(justiceID).click()

    helper.PauseForEffect(REALITY_HUB_TIMEOUT)
    driver.find_element_by_id(addLeadershipButtonID).click()
    helper.PauseForEffect(REALITY_HUB_TIMEOUT)

    # Only Close the TAB
    driver.close()
コード例 #12
0
def GoToStartPoint(startVal, endVal, x, y):
    count = 0
    # Need Extra as we are taking a snapshot after click
    # For FORWARD we should move 1 step ahead, hence range increases by 2
    # For BACKWARD we should  go 1 step behind, hence rnage should not increase
    for i in range(1, startVal + (1 + GetMode(startVal, endVal))):
        helper.ClickAndWait(x + backwardDelta[0], y + backwardDelta[1])
        count += 1
    print("Total Clicks : {}".format(str(count)))

    helper.PauseForEffect(helper.MEDIUM_PAUSE)
    print("Current Mode is {}".format(str(GetMode(startVal, endVal))))
コード例 #13
0
def addEvent(eventObj, credentials, signUpGeniusLink):    
    eventURL = None
    driver = webdriver.Chrome()
    driver.maximize_window()
    driver.get("https://www.eventbrite.com/signin/")
    # Username
    emailFieldID = "email"
    if not helper.HasPageLoadedIDCheck(driver, EVENTBRITE_TIMEOUT, emailFieldID):
        print("Page has not loaded in time")
        return eventURL
    driver.find_element_by_id(emailFieldID).send_keys(credentials["username"])
    pyautogui.press(["enter"])
    # Password
    passwordFieldID = "password"
    if not helper.HasPageLoadedIDCheck(driver, EVENTBRITE_TIMEOUT, passwordFieldID):
        print("Page has not loaded in time")
        return eventURL
    driver.find_element_by_id(passwordFieldID).send_keys(credentials["password"])
    pyautogui.press(["enter"])
    
    helper.PauseForEffect(EVENTBRITE_TIMEOUT)
    # Create a new Event
    helper.ClickElementFromTagAndText(driver, "a", "Create Event")
    currentURL = CreateBasicInfo(driver, eventObj["basic_info"])
    eventID = GetEventID(currentURL)
    print("Event ID is {}".format(eventID))

    driver.get(currentURL)
    CreateDetails(driver, eventObj["details"], signUpGeniusLink)

    driver.get("https://www.eventbrite.com/manage/events/{}/online-event".format(eventID))
    CreateOnlinePage(driver, eventObj["online_page"])

    driver.get("https://www.eventbrite.com/manage/events/{}/tickets/create".format(eventID))
    CreateTickets(driver, eventObj["tickets"])
    
    driver.get("https://www.eventbrite.com/myevent/{}/order-confirmation/".format(eventID))
    CreateOrderConfirmation(driver, eventObj["order_confirmation"], signUpGeniusLink)

    driver.get("https://www.eventbrite.com/manage/events/{}/preview_publish".format(eventID))
    CreatePublish(driver, eventObj["publish"])
    
    driver.get("https://www.eventbrite.com/invites?eid={}".format(eventID))
    CreateEmailInvitations(driver, eventObj["invitations"])
    
    driver.get("https://www.eventbrite.com/myevent?eid={}".format(eventID))
    url =  GetEventURL(driver)
    print(url)
    driver.close()
    return url
コード例 #14
0
def addOrganize(driver, eventObj):
    organizeEventLink = "Organize"
    action = ActionChains(driver)
    attendEventLink = driver.find_element_by_partial_link_text(
        organizeEventLink)
    action.click(on_element=attendEventLink)
    action.perform()

    driver.switch_to.window(driver.window_handles[-1])
    addLeadershipButtonID = "reviews_item_form_button"
    if not helper.HasPageLoadedIDCheck(driver, REALITY_HUB_TIMEOUT,
                                       addLeadershipButtonID):
        print("Page has not loaded in time")
        return
    eventDateID = "date_412"
    eventNameID = "textField_413"
    eventAttendanceID = "textField_415"
    textAreaID = "textarea_418"
    driver.find_element_by_id(eventDateID).send_keys(eventObj["date"])
    driver.find_element_by_id(eventNameID).send_keys(eventObj["name"])
    driver.find_element_by_id(eventAttendanceID).send_keys(
        eventObj["attendance"])
    driver.find_element_by_id(textAreaID).send_keys(eventObj["description"])

    # Radio Button
    elements = driver.find_elements_by_tag_name("label")
    for elem in elements:
        if elem.text == eventObj["type"]:
            elem.click()
    if "photo" in eventObj:
        addPhotoOrganize(driver, eventObj["photo"])
    helper.PauseForEffect(REALITY_HUB_TIMEOUT)
    driver.find_element_by_id(addLeadershipButtonID).click()
    helper.PauseForEffect(REALITY_HUB_TIMEOUT)

    # Only Close the TAB
    driver.close()
コード例 #15
0
def AddSlots(driver, eventObj):
    helper.PauseForEffect(MEDIUM_PAUSE)
    helper.ClickElementFromTagAndText(driver, "strong",
                                      eventObj["type_schedule"])
    tabQuantity = 0
    if eventObj["type_schedule"] == "Slots Only":
        tabQuantity = 3

    for i in range(0, tabQuantity):
        pyautogui.press(["tab"])
    helper.PauseForEffect(SMALL_PAUSE)
    pyautogui.write(eventObj["date"], interval=0.1)
    print(eventObj["date"])
    helper.PauseForEffect(SMALL_PAUSE)
    pyautogui.press(["enter"])
    helper.PauseForEffect(SMALL_PAUSE)
    all_slots = eventObj["all_slots"]
    lenSlots = len(all_slots)
    pyautogui.press(["tab"])
    pyautogui.press(["space"])
    for i in range(0, lenSlots):
        slot = all_slots[i]
        helper.PauseForEffect(SMALL_PAUSE)
        driver.find_element_by_name("slotname").click()
        pyautogui.write(slot["title"], interval=0.1)
        pyautogui.press(["tab"])
        pyautogui.write(slot["comment"], interval=0.1)
        pyautogui.press(["tab"])
        pyautogui.write(slot["quantity"], interval=0.1)
        pyautogui.press(["tab"])
        helper.PauseForEffect(SMALL_PAUSE)
        if i < (lenSlots - 1):
            pyautogui.press(["tab"])
        pyautogui.press(["tab"])
        pyautogui.press(["enter"])
        helper.PauseForEffect(SMALL_PAUSE)

    helper.PauseForEffect(MEDIUM_PAUSE)
    saveAndContiueText = "Save and Continue"
    helper.ClickElementFromTagAndText(driver, "span", saveAndContiueText)
    helper.PauseForEffect(SIGN_UP_GENIUS_TIMEOUT)
コード例 #16
0
def CreateTour(inputFileName, totalTime):
    # Video Details
    pathVal, fileName = os.path.split(inputFileName)
    fileName, extension = os.path.splitext(fileName)
    videoName = os.path.join(
        pathVal, fileName +
        helper.videoExtensionMap[helper.VideoCodec[DEFAULT_VIDEO_CODEC]])

    # Complete Recording
    x, y = helper.LocateImage("./common/saveTour.png")
    if x != None and y != None:
        helper.ClickAndWait(x, y, helper.SMALL_PAUSE)
        pyautogui.write("Tour")
        helper.PauseForEffect(helper.SMALL_PAUSE)
        pyautogui.press(["enter"])
        helper.PauseForEffect(helper.SMALL_PAUSE)
        helper.ClickAndWait(x + closeX, y + closeY, helper.SMALL_PAUSE)
        pyautogui.hotkey("alt", "t")
        pyautogui.press(["down", "down", "down"])
        pyautogui.press(["enter"])
        helper.PauseForEffect(helper.SMALL_PAUSE)
        pyautogui.press(["tab", "tab"])
        pyautogui.write(videoName)
        helper.LocateAndClick("./common/createMovie.png", helper.SMALL_PAUSE)
コード例 #17
0
ファイル: nextdoor.py プロジェクト: aaprabhu1992/eventCreator
def detailsPage(driver, eventObj, eventBriteLink):
    # Event Details
    pyautogui.press(["tab"])
    pyautogui.press(["tab"])

    helper.PauseForEffect(1)
    pyautogui.write(eventObj["start_date"])
    pyautogui.press(["tab"])
    pyautogui.press(["tab"])
    helper.PauseForEffect(2)
    pyautogui.write(eventObj["start_time"], interval=0.1)
    print(eventObj["start_time"])
    helper.PauseForEffect(2)
    pyautogui.press(["tab"])
    helper.PauseForEffect(1)
    pyautogui.press(["enter"])

    helper.PauseForEffect(1)

    pyautogui.press(["tab"])
    pyautogui.press(["tab"])
    pyautogui.press(["tab"])
    pyautogui.press(["tab"])

    helper.PauseForEffect(1)
    pyautogui.write(eventObj["end_date"])
    pyautogui.press(["tab"])
    helper.PauseForEffect(2)
    pyautogui.write(eventObj["end_time"], interval=0.1)
    print(eventObj["end_time"])
    helper.PauseForEffect(2)

    # Event Location
    eventLocation = eventObj["website"]
    if eventBriteLink:
        eventLocation = eventBriteLink
    driver.find_element_by_xpath(
        '//input[@class="postbox-field-text-input pac-target-input"]'
    ).send_keys(eventLocation)

    driver.find_element_by_xpath(
        '//input[@class="postbox-event-checkbox"]').click()

    driver.find_element_by_xpath(
        '//button[@data-testid="button-detail"]').click()
コード例 #18
0
def CreateDetails(driver, eventObj, signUpGeniusLink):
    eventURL = None
    summaryID = "event-design-summary"
    if not helper.HasPageLoadedIDCheck(driver, EVENTBRITE_TIMEOUT, summaryID):
        print("Page has not loaded in time")
        return eventURL
    # Upload Banner
    uploadImageClass = "eds-uploader-dropzone__cover"
    allImages = driver.find_elements_by_class_name(uploadImageClass)
    allImages[0].click()
    helper.PauseForEffect(SMALL_PAUSE)
    pyautogui.write(eventObj["banner"], interval = 0.1)
    pyautogui.press(["enter"])
    helper.PauseForEffect(SMALL_PAUSE)    
    # Will Always ask for CROP, User has to ensure it is up to size
    pyautogui.press(["tab"])
    pyautogui.press(["enter"])

    # Add text
    richTextBoxClass = "eds-richtexteditor__input"
    driver.find_element_by_id(summaryID).send_keys(eventObj["summary"])
    description = eventObj["description"]
    description = description.replace("$LINK$", signUpGeniusLink)
    driver.find_element_by_class_name(richTextBoxClass).send_keys(description)
    
    
    # Add Chef Image
    if "add" in eventObj:
        allAdds = eventObj["add"]
        for add in allAdds:
            assert "type" in add
            Scroll(-100, 5)
            if add["type"] == "image":
                helper.ClickElementFromTagAndText(driver, "button", "Add Image")
                helper.PauseForEffect(SMALL_PAUSE)
                Scroll(-100, 5)
                allImages = driver.find_elements_by_class_name(uploadImageClass)
                print(len(allImages))
                allImages[0].click()
                helper.PauseForEffect(SMALL_PAUSE)
                pyautogui.write(add["content"], interval = 0.1)
                pyautogui.press(["enter"])
                helper.PauseForEffect(SMALL_PAUSE)
            else:
                print("Other types not yet supported")
    helper.PauseForEffect(SMALL_PAUSE)
    helper.ClickElementFromTagAndText(driver, "button", "Save")
    helper.PauseForEffect(EVENTBRITE_TIMEOUT)
コード例 #19
0
def addEvent(eventObj, credentials):
    eventURL = None
    driver = webdriver.Chrome()
    driver.maximize_window()
    driver.get("https://www.signupgenius.com/register")
    # Login
    emailFieldID = "email"
    passwordFieldID = "pword"
    loginButtonID = "loginBtnId"
    if not helper.HasPageLoadedIDCheck(driver, SIGN_UP_GENIUS_TIMEOUT,
                                       loginButtonID):
        print("Page has not loaded in time")
        return eventURL
    driver.find_element_by_partial_link_text("Got it!").click()
    driver.find_element_by_id(emailFieldID).send_keys(credentials["username"])
    driver.find_element_by_id(passwordFieldID).send_keys(
        credentials["password"])
    driver.find_element_by_id(loginButtonID).send_keys(Keys.ENTER)
    createSignUpClass = "btn btn-green black-shadow-active"
    helper.PauseForEffect(SIGN_UP_GENIUS_TIMEOUT)
    signUpListItemID = "member-sidebar--menu-signupsid"
    if not helper.HasPageLoadedIDCheck(driver, SIGN_UP_GENIUS_TIMEOUT,
                                       signUpListItemID):
        print("Page has not loaded in time")
        return eventURL
    # Start with Base
    url = AddBasicInformation(driver, eventObj)
    eventID = GetEventID(url)
    # driver.get("https://www.signupgenius.com/index.cfm?go=w.manageSignUp#/{}/slots/".format(eventID))

    # Other Details
    AddSlots(driver, eventObj)
    AddSettings(driver, eventObj)

    # Publish
    driver.get(
        "https://www.signupgenius.com/index.cfm?go=w.manageSignUp#/{}/publish/"
        .format(eventID))
    signUpLink = AddPublish(driver, eventObj)
    driver.close()
    print(signUpLink)
    return signUpLink
コード例 #20
0
def CreateEmailInvitations(driver, eventObj):
    helper.PauseForEffect(EVENTBRITE_TIMEOUT)
    helper.ClickElementFromTagAndText(driver, "button", "Create Classic Invite")
    helper.PauseForEffect(EVENTBRITE_TIMEOUT)
    # Add Guests
    driver.find_element_by_partial_link_text("+ Add Guests").click()
    guestsType = eventObj["add_guests"]
    helper.PauseForEffect(SMALL_PAUSE)
    if guestsType["type"] == "previous":
        driver.find_element_by_id("c").click()
        helper.PauseForEffect(SMALL_PAUSE)
        driver.set_window_size(1000, 1000)
        driver.maximize_window()
        element = driver.find_element_by_id(guestsType["eventID"])
        driver.execute_script('return arguments[0].scrollIntoView();', element)
        element.click()
    else:
        print("Other Guetst Add type not supported")
    helper.PauseForEffect(SMALL_PAUSE)
    addID = "lightbox_a_save_button"
    driver.find_element_by_id(addID).click() 
    # Add Schedule
    email_time = eventObj["email_time"]
    if email_time["type"] == "schedule":        
        whenName = "schedule_mode_x"
        driver.find_element_by_name(whenName).click()
        dateID = "schedule_date"
        helper.ClearAndAddElement_Input(driver, dateID, email_time["date"])
        hourID = "endhr"
        minutesID = "endmin"
        ampmID = "endampm"
        select = Select(driver.find_element_by_id(hourID))
        select.select_by_visible_text(email_time["hour"])
        select = Select(driver.find_element_by_id(minutesID))
        select.select_by_visible_text(email_time["min"])
        select = Select(driver.find_element_by_id(ampmID))
        select.select_by_visible_text(email_time["ampm"])
    else:
        print("Other Schedule types not supported")
    helper.PauseForEffect(SMALL_PAUSE)
    driver.find_element_by_partial_link_text("Save & Schedule").click()            
    helper.PauseForEffect(EVENTBRITE_TIMEOUT)
コード例 #21
0
def CreatePublish(driver, eventObj):
    helper.PauseForEffect(EVENTBRITE_TIMEOUT)
    helper.ClickElementFromTagAndText(driver, "button", "Publish")

    helper.PauseForEffect(EVENTBRITE_TIMEOUT)
コード例 #22
0
def OpenFile(fileName):
    pyautogui.hotkey("ctrl", "o")
    helper.PauseForEffect(helper.SMALL_PAUSE)
    pyautogui.write(fileName)
    pyautogui.press(["enter"])
コード例 #23
0
def record(inputJSON):
    CheckJSON(inputJSON)
    helper.PauseForEffect(helper.SMALL_PAUSE)
    allDates = inputJSON["dates"]
    for date in allDates:
        CreateAndRecord(inputJSON["file"], date, inputJSON["time"])
コード例 #24
0
import pyautogui
import argparse

import helper

imageSnapRegion = (590, 170, 2600, 1420)

parser = argparse.ArgumentParser()
parser.add_argument('-name', type=str, help='Image file Name')
parser.add_argument('-imgType', type=str, help='imageType')
parser.add_argument('-wait', type=str, help='Time to wait before taking snap')

args = parser.parse_args()
imageName = args.name
imageType = args.imgType
wait = args.wait

imageType = helper.imageTypeMap[helper.ImageType[imageType]]
helper.PauseForEffect(int(wait))
helper.Beep()
pyautogui.screenshot(imageName + imageType, region=imageSnapRegion)
helper.Beep()
コード例 #25
0
def addAllLeadership(eventObj, credentials):
    driver = webdriver.Chrome()
    driver.maximize_window()
    driver.get("https://realityhub.climaterealityproject.org/home")
    # Page Load
    loginButtonID = "headerLogLink"
    if not helper.HasPageLoadedIDCheck(driver, REALITY_HUB_TIMEOUT,
                                       loginButtonID):
        print("Page has not loaded in time")
        return
    driver.find_element_by_id(loginButtonID).send_keys(Keys.ENTER)
    # Login
    emailFieldID = "email"
    passwordFieldID = "password"
    loginButtonID = "main_login_button"
    if not helper.HasPageLoadedIDCheck(driver, REALITY_HUB_TIMEOUT,
                                       emailFieldID):
        print("Page has not loaded in time")
        return

    driver.find_element_by_id(emailFieldID).send_keys(credentials["username"])
    driver.find_element_by_id(passwordFieldID).send_keys(
        credentials["password"])
    driver.find_element_by_id(loginButtonID).send_keys(Keys.ENTER)
    # Go to Events
    actBarID = "navbarDropdown_1"
    recordLeadershipText = "Record an"
    if not helper.HasPageLoadedIDCheck(driver, REALITY_HUB_TIMEOUT, actBarID):
        print("Page has not loaded in time")
        return
    action = ActionChains(driver)
    actBar = driver.find_element_by_id(actBarID)
    action.click(on_element=actBar)
    action.perform()
    # Need to see it on the screen before you click
    helper.PauseForEffect(1)

    # Need to create a new chain every time
    action = ActionChains(driver)
    attendEventLink = driver.find_element_by_partial_link_text(
        recordLeadershipText)
    action.click(on_element=attendEventLink)
    action.perform()
    helper.PauseForEffect(REALITY_HUB_TIMEOUT)

    if "organize" in eventObj:
        allOrganizations = eventObj["organize"]
        for organizeObj in allOrganizations:
            driver.switch_to.window(driver.window_handles[-1])
            addOrganize(driver, organizeObj)

    if "assist" in eventObj:
        allAssists = eventObj["assist"]
        for assistObj in allAssists:
            driver.switch_to.window(driver.window_handles[-1])
            addAssist(driver, assistObj)

    if "participate" in eventObj:
        allParticipates = eventObj["participate"]
        for participateObj in allParticipates:
            driver.switch_to.window(driver.window_handles[-1])
            addParticipate(driver, participateObj)

    if "blog" in eventObj:
        allBlogs = eventObj["blog"]
        for blogObj in allBlogs:
            driver.switch_to.window(driver.window_handles[-1])
            addBlog(driver, blogObj)

    if "resource" in eventObj:
        allResources = eventObj["resource"]
        for resourceObj in allResources:
            driver.switch_to.window(driver.window_handles[-1])
            addResource(driver, resourceObj)

    # All Acts have been added
    # Now Close the window
    driver.quit()
コード例 #26
0
def addEvent(eventObj, credentials, eventBriteLink):    
    eventURL = None
    driver = webdriver.Chrome()
    driver.maximize_window()
    driver.get("https://realityhub.climaterealityproject.org/home")
    # Page Load
    loginButtonID = "headerLogLink"
    if not helper.HasPageLoadedIDCheck(driver, REALITY_HUB_TIMEOUT, loginButtonID):
        print("Page has not loaded in time")
        return eventURL
    driver.find_element_by_id(loginButtonID).send_keys(Keys.ENTER)
    # Login
    emailFieldID = "email"
    passwordFieldID = "password"
    loginButtonID = "main_login_button"
    if not helper.HasPageLoadedIDCheck(driver, REALITY_HUB_TIMEOUT, emailFieldID):
        print("Page has not loaded in time")
        return eventURL
    driver.find_element_by_id(emailFieldID).send_keys(credentials["username"])
    driver.find_element_by_id(passwordFieldID).send_keys(credentials["password"])
    driver.find_element_by_id(loginButtonID).send_keys(Keys.ENTER)
    # Go to Events
    actBarID = "navbarDropdown_1"
    attendEventText = "Attend an Event"
    if not helper.HasPageLoadedIDCheck(driver, REALITY_HUB_TIMEOUT, actBarID):
        print("Page has not loaded in time")
        return eventURL
    action = ActionChains(driver)
    actBar = driver.find_element_by_id(actBarID)
    action.click(on_element = actBar)
    action.perform()
    # Need to see it on the screen before you click
    helper.PauseForEffect(1)
    
    # Need to create a new chain every time
    action = ActionChains(driver)    
    attendEventLink = driver.find_element_by_partial_link_text(attendEventText)
    action.click(on_element = attendEventLink)
    action.perform()

    postAnEventID = "html_custom_block_0_0_button"
    if not helper.HasPageLoadedIDCheck(driver, REALITY_HUB_TIMEOUT, postAnEventID):
        print("Page has not loaded in time")
        return eventURL
    driver.find_element_by_id(postAnEventID).send_keys(Keys.ENTER)
    # Fill Event details
    eventNameID = "textField_event_name"
    startDateID = "dateTime_event_start"
    startTimeID = "dateTime_event_start_time"
    endDateID = "dateTime_event_end"
    endTimeID = "dateTime_event_end_time"
    timeZoneClass = "time-zone-link btn btn-primary"
    timeZoneCountryID = "time_zone_country_select"
    timeZoneCityID = "time_zone_city_select"
    eventVenueID = "textField_event_venue"
    addrLine1ID = "Address_event_address_address_1_input"
    addrLine2ID = "Address_event_address_address_2_input"
    cityID = "Address_event_address_address_city_input"
    stateID = "Address_event_address_state_text"
    postCodeID = "Address_event_address_address_postal_code_input"
    countryID = "Address_event_address_country_select"
    eventTypeID = "dropDown_3031"
    hostNameID = "textField_2818"
    hostEmailID = "textField_2820"
    hostGroupID = "textField_3335"
    eventWebsiteID = "link_3336"
    submitEventID = "events_item_form_button"
    if not helper.HasPageLoadedIDCheck(driver, REALITY_HUB_TIMEOUT, eventNameID):
        print("Page has not loaded in time")
        return eventURL
    
    # Basic 
    driver.find_element_by_id(eventNameID).send_keys(eventObj["name"])
    helper.PauseForEffect(REALITY_HUB_TIMEOUT)
    driver.switch_to_frame(0)
    driver.find_element_by_xpath('html/body').send_keys(eventObj["description"])
    driver.switch_to_default_content()
    print("Basic Data Added")

    # Time
    helper.ClearAndAddElement(driver, startDateID, eventObj["start_date"])
    helper.ClearAndAddElement(driver, startTimeID, eventObj["start_time"])
    helper.ClearAndAddElement(driver, endDateID, eventObj["end_date"])
    helper.ClearAndAddElement(driver, endTimeID, eventObj["end_time"])
    
    attendEventLink = driver.find_element_by_partial_link_text("NEW YORK").click()
    helper.PauseForEffect(REALITY_HUB_TIMEOUT)
    select = Select(driver.find_element_by_id(timeZoneCountryID))
    select.select_by_visible_text(eventObj["timeZone_Country"])
    select = Select(driver.find_element_by_id(timeZoneCityID))
    select.select_by_visible_text(eventObj["timeZone_Time"])
    
    print("Time Data Added")
    
    
    # Address 
    driver.find_element_by_id(eventVenueID).send_keys(eventObj["venue"])
    driver.find_element_by_id(addrLine1ID).send_keys(eventObj["addr_line_1"])
    driver.find_element_by_id(addrLine2ID).send_keys(eventObj["addr_line_2"])
    driver.find_element_by_id(cityID).send_keys(eventObj["addr_city"])
    driver.find_element_by_id(stateID).send_keys(eventObj["addr_state"])
    driver.find_element_by_id(postCodeID).send_keys(eventObj["addr_pincode"])
    select = Select(driver.find_element_by_id(countryID))
    select.select_by_visible_text(eventObj["addr_country"])
    print("Address Data Added")

    # Event Type
    select = Select(driver.find_element_by_id(eventTypeID))
    select.select_by_visible_text(eventObj["type"])
    driver.find_element_by_id(hostNameID).send_keys(eventObj["hostName"])
    driver.find_element_by_id(hostEmailID).send_keys(eventObj["hostEmail"])
    driver.find_element_by_id(hostGroupID).send_keys(eventObj["hostOrg"])
    if eventBriteLink:
        eventObj["website"] = eventBriteLink
    element = driver.find_element_by_id(eventWebsiteID)
    element.clear()
    element.send_keys(eventObj["website"])
    

    # Submit
    helper.PauseForEffect(REALITY_HUB_TIMEOUT)
    driver.find_element_by_id(submitEventID).click()
    
    #Ensure event has been completed
    completeButtonID = "send_event_message_button_events_event_message_0_9"
    if not helper.HasPageLoadedIDCheck(driver, REALITY_HUB_TIMEOUT + 30, completeButtonID):
        print("Page has not loaded in time")
        eventURL = "Event not Created"
    else:
        eventURL = driver.current_url
    driver.close()
    return eventURL
コード例 #27
0
if args.param is not None:
    try:
        with open(args.param, "r") as f:
            paramJSON = json.load(f)
    except OSError:
        print("File Read Error")
    helper.PrettyPrintJSON(paramJSON)

# Import pywinauto Application class
from pywinauto.application import Application
# Start a new process and specify a path to the text file
app = Application().start(
    '"C:/Program Files/Google/Google Earth Pro/client/googleearth.exe"',
    timeout=helper.WAIT_WINDOW)

helper.PauseForEffect(helper.MEDIUM_PAUSE)
dlg_spec = app.window()

# Resize the window
x, y = helper.LocateImage('./common/restore.png')
if x != None and y != None:
    helper.LocateAndClick('./common/restore.png', helper.SMALL_PAUSE)
helper.LocateAndClick('./common/maximize.png', helper.SMALL_PAUSE)

x, y = helper.LocateImage('./common/closeIntro.png')
if x != None and y != None:
    helper.LocateAndClick('./common/closeIntro.png', helper.SMALL_PAUSE)

if paramJSON:
    assert "data" in paramJSON, "Data parameter not provided"
    allData = paramJSON["data"]
コード例 #28
0
def AddSettings(driver, eventObj):
    # No Changes in this region hence small pause sufficient
    helper.PauseForEffect(SMALL_PAUSE)
    saveAndContiueText = "Save and Continue"
    helper.ClickElementFromTagAndText(driver, "span", saveAndContiueText)
    helper.PauseForEffect(SMALL_PAUSE)
コード例 #29
0
def record(inputJSON):
    helper.PauseForEffect(helper.SMALL_PAUSE)

    if "place" in inputJSON:
        GoToPlace(inputJSON["place"])
    if "cooridnate" in inputJSON:
        GoToPlace(inputJSON["cooridnate"])
    if "scroll" in inputJSON:
        helper.LocateAndClick('./common/earth.png',
                              helper.MEDIUM_PAUSE,
                              adjY=centerOfPoint)
        for i in range(0, inputJSON["scroll"]):
            pyautogui.scroll(SCROLL_AMOUNT)

    # Locate Time Lapse
    x, y = helper.LocateImage('./common/timelapse.png')
    if x != None and y != None:
        # Start Time Lapse
        helper.ClickAndWait(x, y, helper.SMALL_PAUSE)
        startVal = inputJSON["start_count"]
        endVal = inputJSON["end_count"]
        assert startVal != endVal, "Start and End Cannot be the same"
        # When Imagery starts its on the actual date
        # At the current date there is not image
        # When you click BACK for the first time, it moves to the
        # Latest Available Imagery / Image Ticker 0
        helper.ClickAndWait(x + backwardDelta[0], y + backwardDelta[1])
        GoToStartPoint(startVal, endVal, x, y)

        # Preprocessing before taking snapshot
        stepX = x
        stepY = y
        if GetMode(startVal, endVal) == -1:
            stepX = x + backwardDelta[0]
            stepY = y + backwardDelta[1]
        if GetMode(startVal, endVal) == 1:
            stepX = x + forwardDelta[0]
            stepY = y + forwardDelta[1]
        listToCapture = GetListToCapture(inputJSON, startVal, endVal)
        print(listToCapture)
        totalPad = int(math.ceil(math.log10(max(startVal, endVal))))
        imageName, imageType = GetImageNameAndType(inputJSON["image"])

        CreateImages(startVal, endVal, stepX, stepY, listToCapture, imageName,
                     totalPad, imageType, imageRegion)

        # Make the video if needed
        if "video" in inputJSON:
            videoJSON = inputJSON["video"]
            CreateVideoFromJSON(videoJSON, imageType)

        # Delete the images
        if "delete" in inputJSON["image"] and inputJSON["image"][
                "delete"] == "Yes":
            if inputJSON["type"] == "TIMELAPSE" and "video" in inputJSON:
                for fileName in os.listdir('./'):
                    if fileName.endswith(imageType):
                        os.remove(fileName)

        # Close Time Lapse
        helper.ClickAndWait(x, y)
コード例 #30
0
def CreateBasicInfo(driver, eventObj):
    titleID = "event-basicInfo-title"
    if not helper.HasPageLoadedIDCheck(driver, EVENTBRITE_TIMEOUT, titleID):
        print("Page has not loaded in time")
        return eventURL
    driver.find_element_by_id(titleID).send_keys(eventObj["title"])
    selectID = "event-basicinfo-organizer-profile"
    eventTypeName = "eventType"
    eventTopicName = "eventTopic"
    eventSubTopicName =  "eventSubTopic"
    tagFieldName  = "tagInputField"
    select = Select(driver.find_element_by_id(selectID))
    select.select_by_visible_text(eventObj["organizer"])
    select = Select(driver.find_element_by_name(eventTypeName))
    select.select_by_visible_text(eventObj["type"])
    select = Select(driver.find_element_by_name(eventTopicName))
    select.select_by_visible_text(eventObj["topic"])
    helper.PauseForEffect(SMALL_PAUSE)
    select = Select(driver.find_element_by_name(eventSubTopicName))
    select.select_by_visible_text(eventObj["subTopic"])
    fieldValue = driver.find_element_by_name(tagFieldName)
    allTags = eventObj["tags"]
    allTags = (allTags, allTags[0:MAX_TAGS])[len(allTags) > MAX_TAGS]

    for tag in allTags:
        fieldValue.send_keys(tag)
        pyautogui.press("enter")
    helper.PauseForEffect(SMALL_PAUSE)

    Scroll(-100, 5)
    print("Scroll Completed")
    locationDetails = eventObj["location"]
    helper.ClickElementFromTagAndText(driver, "div", "Online event")
    print("Completd DIV try")
    # if locationDetails["type"] == "Venue":
        # driver.find_element_by_id("segmented-venueType-0").click()
    # if locationDetails["type"] == "Online event":
        # driver.find_element_by_id("segmented-venueType-1").click()
    # if locationDetails["type"] == "To be announced":
        # driver.find_element_by_id("segmented-venueType-2").click()
    # print("Completd Radio Try")
    
    Scroll(-100, 5)

    dateAndTime = eventObj["dateAndTime"]
    helper.MoveToElement(driver, "div", "Single Event")
    helper.ClickElementFromTagAndText(driver, "div", "Single Event")
    if dateAndTime["type"] == "Single Event":
        startDateID = "event-startDate"
        startTimeID = "event-startTime"
        endDateID = "event-endDate"
        endTimeID = "event-endTime"
        helper.ClearAndAddElement_Input(driver, startDateID, dateAndTime["start_date"])
        helper.ClearAndAddElement_Input(driver, startTimeID, dateAndTime["start_time"])
        helper.ClearAndAddElement_Input(driver, endDateID, dateAndTime["end_date"])
        helper.ClearAndAddElement_Input(driver, endTimeID, dateAndTime["end_time"])

    selectZoneName = "venueTimeZone"
    select = Select(driver.find_element_by_name(selectZoneName))
    select.select_by_visible_text(dateAndTime["zone"])
    
    helper.ClickElementFromTagAndText(driver, "button", "Save & Continue")
    # 
    helper.PauseForEffect(EVENTBRITE_TIMEOUT)
    helper.PauseForEffect(EVENTBRITE_TIMEOUT)
    return driver.current_url