enkur / ATT-Fiber-Check

script to check where Fiber is available
26 stars 9 forks source link

Handle MDU Addresses #11

Open phobozad opened 7 years ago

phobozad commented 7 years ago

Currently it looks like if a street address has multiple units (e.g. apartment complex), the speedcheck script just marks it as a bad address. It would be great if it could detect this condition and select one of the unit numbers from a list (e.g. just pick the first one would be good enough, they should all be the same), so it can get the real speed offered at MDU locations.

See the attached screenshot for the interstitial page that is inserted for MDUs:

screen shot
Budman17r commented 7 years ago

Good catch. I can probably add something to it. Prolly won't be able to till thursday sadly.

Budman17r commented 7 years ago

So I figured out what needs to be added to speedcheck.py

this handles the first part
browser.is_text_present('I want to select my apartment')

this makes the addesses "Appear
browser.choose('selectAddressOption','2')

this was just a test

browser.is_text_present('APT') true

This selected the top option of the sub addresses browser.choose('subAddressList','0')

This clicks the button browser.find_by_xpath('//*[@id="content"]/div/div[3]/div/div[3]/p/a').first.click()

then the rest returns like normal. Like I said won't be able to do more till thursday or so.

enkur commented 7 years ago

Ill see if I have some time today to integrate the change.

enkur commented 7 years ago

I have added to code to handle MDU.

enkur commented 7 years ago

re-opening as the MDU code needs to be updated for the new webservice querying method

phobozad commented 7 years ago

As a starting point, here an example HTTP response for an MDU location:

{
  "wbfcResponse": {
    "statusCode": 600,
    "serviceErrors": [],
    "inputErrors": {},
    "doRedirect": false,
    "redirectURL": null,
    "statusName": "Success"
  },
  "CkavDataBean": {
    "maskedServiceAddress1": null,
    "networkType": null,
    "segmentId": null,
    "UnifiedAddressBean": {
      "RestrictedAddressTeleNumber": null,
      "lightspeedAvailFlag": false,
      "OOFP": false,
      "singleDispatchIndicator": false,
      "QualifiedNetworkTransportType": null,
      "isVoipExistsInUserAccount": false,
      "dualTransportTypeFlag": false,
      "navigationToken": null,
      "wirelessAvailFlag": false,
      "countyName": null,
      "maxHsiaSpeedInOffer": null,
      "isHsiaExistsInUserAccount": false,
      "UserInput": {
        "userInputAddressId": null,
        "userInputAddressLine2": null,
        "userInputZip": "53202",
        "userInputAddressLine1": "444 E Corcoran Ave",
        "userInputState": null,
        "userInputCity": null
      },
      "isExistingDTVOnUverseBan": false,
      "hsiaAvailFlag": false,
      "iptvAvailFlag": false,
      "uverseGreenAddressFlag": false,
      "isExistingWirelessOnUverseBan": false,
      "offerNotMatched": false,
      "UserQualifiedHomeAddress": {
        "zipCode": null,
        "state": null,
        "addressLine2": null,
        "addressLine1": null,
        "city": null
      },
      "CloseMatchAddress": null,
      "isLightGigFlag": false,
      "uverseMoveIn": false,
      "unifiedEligibleHSIASpeed": null,
      "voipAvailFlag": false,
      "uverseRedAddressFlag": false,
      "dtvMoveIn": false,
      "isIptvExistsInUserAccount": false,
      "convergedBillingIndicator": false,
      "entryType": null,
      "unifiedAvailableFlag": false,
      "offerTvType": null,
      "countyMap": null,
      "isRestrictedDelearAddress": false,
      "MDUAddress": {
        "19": "444 E CORCORAN  AV,APT 314,MILWAUKEE,WI53202",
        "17": "444 E CORCORAN  AV,APT 312,MILWAUKEE,WI53202",
        "22": "444 E CORCORAN  AV,APT 317,MILWAUKEE,WI53202",
        "23": "444 E CORCORAN  AV,APT 318,MILWAUKEE,WI53202",
        "18": "444 E CORCORAN  AV,APT 313,MILWAUKEE,WI53202",
        "24": "444 E CORCORAN  AV,APT 319,MILWAUKEE,WI53202",
        "15": "444 E CORCORAN  AV,APT 310,MILWAUKEE,WI53202",
        "16": "444 E CORCORAN  AV,APT 311,MILWAUKEE,WI53202",
        "13": "444 E CORCORAN  AV,APT 308,MILWAUKEE,WI53202",
        "14": "444 E CORCORAN  AV,APT 309,MILWAUKEE,WI53202",
        "11": "444 E CORCORAN  AV,APT 306,MILWAUKEE,WI53202",
        "12": "444 E CORCORAN  AV,APT 307,MILWAUKEE,WI53202",
        "3": "444 E CORCORAN  AV,BLDG FIRE,MILWAUKEE,WI53202",
        "21": "444 E CORCORAN  AV,APT 316,MILWAUKEE,WI53202",
        "2": "444 E CORCORAN  AV,BLDG FIR,MILWAUKEE,WI53202",
        "20": "444 E CORCORAN  AV,APT 315,MILWAUKEE,WI53202",
        "1": "444 E CORCORAN  AV,BLDG ELEVA,MILWAUKEE,WI53202",
        "10": "444 E CORCORAN  AV,APT 305,MILWAUKEE,WI53202",
        "0": "444 E CORCORAN  AV,BLDG ELEV,MILWAUKEE,WI53202",
        "7": "444 E CORCORAN  AV,APT 302,MILWAUKEE,WI53202",
        "6": "444 E CORCORAN  AV,APT 301,MILWAUKEE,WI53202",
        "5": "444 E CORCORAN  AV,FLR 1,MILWAUKEE,WI53202",
        "4": "444 E CORCORAN  AV,BLDG SECUR,MILWAUKEE,WI53202",
        "9": "444 E CORCORAN  AV,APT 304,MILWAUKEE,WI53202",
        "8": "444 E CORCORAN  AV,APT 303,MILWAUKEE,WI53202"
      },
      "intentMatched": false,
      "dtvAvailFlag": false,
      "preUverseGreen": false,
      "customerIntent": "walkin",
      "sysRespCode": "ITPA~0~01100",
      "countyFIPScode": null,
      "referralFilterItem": null
    },
    "UseATTPhoneNo": false,
    "addressId": "",
    "ProductSuite": null,
    "isEffectiveVoipAvailable": false,
    "isWirelineServiceExisting": false,
    "isDTVServiceExisting": false,
    "outOfFranchise": false,
    "maxHsiaSpeedAvailable": null,
    "isUverseServiceExisting": false,
    "isDSLServiceExisting": false,
    "showCTOForThirdPartyCombinedBill": false,
    "isMdUAddress": null,
    "lightGigFlag": false,
    "dBBEligibility": false,
    "isWirelessServiceExisting": false,
    "isTelcoServiceExisting": false,
    "maxUverseHsiaSpeedAvailable": null,
    "dtvOptin": false,
    "OfferId": null,
    "personaId": null,
    "gigaPowerNotificationFromRollout": false,
    "wtModelScoreInfo": null
  },
  "UnifiedUserTypeBean": {
    "authenticatedToUverse": false,
    "authenticatedToDTV": false,
    "authorizedUser": false,
    "authenticatedToLegacyAccount": false,
    "notEligible": false,
    "unifyOnlyEligible": false,
    "authenticatedToWireless": false,
    "userType": null
  },
  "NavigationInfo": {
    "navigationUrl": "/shop/unified/availability/mdu-address.html",
    "segmentName": "mdu",
    "isLightGigFlag": null,
    "communicationErrorFlag": false,
    "systemErrorFlag": false,
    "errorFlag": false,
    "customerIntent": null
  },
  "unifiedReferralInfo": {
    "potentialUnifiedOffer": null,
    "hsiaSpeedIneligible": false,
    "source": null,
    "siteId": null,
    "affiliatePartner": null,
    "offerValid": true,
    "refUnifiedOfferIneligible": false,
    "unifiedSessionFlag": false,
    "iRUFanNumber": null,
    "date": null,
    "companyName": null
  },
  "referralInfo": {
    "refOfferInValid": false,
    "potentialNextBestOfferPrice": null,
    "ReferralOfferId": null,
    "titanReferral": false,
    "refOfferIneligible": false,
    "ReferralPkgId": null,
    "ReferralFilterId": null,
    "refUnifiedOfferIneligible": false,
    "referralCodeExist": false,
    "unifiedSessionFlag": false,
    "iptvSelected": false,
    "dtvLocalFlag": false,
    "refPkgIneligible": false,
    "iRUFanNumber": null,
    "dtvPkgFlag": false,
    "refCouponIneligible": false,
    "hsiaSpeedIneligible": false,
    "hsiaSpeedRequested": null,
    "RefCouponId": null,
    "voipSelected": false,
    "companyName": null,
    "lightGigRedirect": false,
    "useNavigationInfo": true,
    "potentialUnifiedOffer": null,
    "destinationURL": "/shop/unified/availability/mdu-address.html",
    "potentialNextBestOffer": null,
    "invalidTitanReferral": false,
    "uversePending": false,
    "premierFailureUrl": null,
    "hsiaSelected": false
  },
  "profile": {
    "employeeSegment": null,
    "state": null,
    "maskServiceAddress": null,
    "isDTVAvailable": false,
    "LIGHTSPEEDExists": false,
    "addressId": null,
    "city": null,
    "referralAppId": null,
    "zipCode": null,
    "ATTEmployeeId": null,
    "zipExtension": null,
    "isIPDSLAM": false,
    "fccWireCenterStatus": null,
    "wireCenterCode": null,
    "isIPTVAvailable": false,
    "LIGHTSPEEDPending": false,
    "isUverseAvailable": false,
    "customerType": "Consumer",
    "isHSIAAvailable": false,
    "dma": null,
    "customerSubType": "residential",
    "isCheckAvailabilityPerformed": false,
    "addressLine2": null,
    "wirelessHomePhoneEligible": false,
    "addressLine1": null,
    "migrationTargetIdentifier": null,
    "isVOIPAvailable": false
  }
}
joe-eklund commented 7 years ago

By the way, ATT does have an official MDU map here: https://www.att.com/att/mdu/

Might be able to check people's findings against it to see if it is properly getting them or if we pick up some that aren't on the official map.

gsxryan commented 7 years ago

Thanks for sharing the MDU map! In my area I found quite a few other neighborhoods that are not listed on their map. My scans did cover one area they show as well.