Coder Social home page Coder Social logo

davecardwell / publix-coupon-clipper Goto Github PK

View Code? Open in Web Editor NEW
13.0 2.0 3.0 1.91 MB

Automatically clip Publix digital coupons

License: GNU General Public License v3.0

JavaScript 7.19% TypeScript 92.17% Shell 0.64%
puppeteer digital-coupons groceries coupons

publix-coupon-clipper's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

publix-coupon-clipper's Issues

No node found for selector

Coupon clipper was working for a long time but it now I get this error. Any ideas?

New document request: POST https://www.publix.com/
Error: No node found for selector: #tmpUserNameInput
at Object.exports.assert (C:\Users*\AppData\Roaming\npm-cache_npx\3452\node_modules\publix-coupon-clipper\node_modules\puppeteer\lib\cjs\puppeteer\common\assert.js:26:15)
at DOMWorld.type (C:\Users*
\AppData\Roaming\npm-cache_npx\3452\node_modules\publix-coupon-clipper\node_modules\puppeteer\lib\cjs\puppeteer\common\DOMWorld.js:304:21)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
at async logInToPublix (C:\Users*\AppData\Roaming\npm-cache_npx\3452\node_modules\publix-coupon-clipper\dist\index.node.js:139:3)
at async clipCoupons (C:\Users*
\AppData\Roaming\npm-cache_npx\3452\node_modules\publix-coupon-clipper\dist\index.node.js:60:5)
at async main (C:\Users*\AppData\Roaming\npm-cache_npx\3452\node_modules\publix-coupon-clipper\dist\index.node.js:243:3)
at async C:\Users*
\AppData\Roaming\npm-cache_npx\3452\node_modules\publix-coupon-clipper\dist\index.node.js:24:7

unexpected token '?' error

Hi David,

I used to use your coupon clipper and can't figure out why it won't work for me anymore. I'd really appreciate a little help when you have time. When I try running npx publix-coupon-clipper [email] [password] with my credentials I can see chromium downloads 100% and then I get the below error

Unexpected token '?'

I don't think it's a bug and I'm pretty sure I just don't know what I'm doing... a little help would be greatly appreciated!

Kind Regards,
Steve

PS: thanks for putting this together it's really cool!

Timeout Error

I am getting a timeout error. Any idea what could be wrong?
..[vyadav@VYADAV-LT] - [~/publix-coupon-clipper] - [Tue Mar 02, 12:20] ..[$] <( (git)-[master]-)> npx publix-coupon-clipper [email protected] my_password_is_hidden Downloading Chromium r818858 - 132.4 Mb [====================] 100% 0.0s Setting up page Logging in to Publix.com New document request: GET https://www.publix.com/savings/digital-coupons?sort=Newest New document request: GET https://www.publix.com/login?redirectUrl=/savings/digital-coupons?sort=Newest New document request: GET https://account.publix.com/......./b2c_1a_publixsigninmigration_signin/oauth2/v2.0/authorize......... { TimeoutError: waiting for selector .error failed: timeout 30000ms exceeded at new WaitTask (/Users/vyadav/.npm/_npx/36392/lib/node_modules/publix-coupon-clipper/node_modules/puppeteer/lib/cjs/puppeteer/common/DOMWorld.js:505:34) at DOMWorld.waitForSelectorInPage (/Users/vyadav/.npm/_npx/36392/lib/node_modules/publix-coupon-clipper/node_modules/puppeteer/lib/cjs/puppeteer/common/DOMWorld.js:416:26) at Object.internalHandler.waitFor (/Users/vyadav/.npm/_npx/36392/lib/node_modules/publix-coupon-clipper/node_modules/puppeteer/lib/cjs/puppeteer/common/QueryHandler.js:31:77) at DOMWorld.waitForSelector (/Users/vyadav/.npm/_npx/36392/lib/node_modules/publix-coupon-clipper/node_modules/puppeteer/lib/cjs/puppeteer/common/DOMWorld.js:312:29) at Frame.waitForSelector (/Users/vyadav/.npm/_npx/36392/lib/node_modules/publix-coupon-clipper/node_modules/puppeteer/lib/cjs/puppeteer/common/FrameManager.js:842:51) at Page.waitForSelector (/Users/vyadav/.npm/_npx/36392/lib/node_modules/publix-coupon-clipper/node_modules/puppeteer/lib/cjs/puppeteer/common/Page.js:1285:33) at Promise.all.Promise (/Users/vyadav/.npm/_npx/36392/lib/node_modules/publix-coupon-clipper/dist/index.node.js:171:10) at new Promise (<anonymous>) at logInToPublix (/Users/vyadav/.npm/_npx/36392/lib/node_modules/publix-coupon-clipper/dist/index.node.js:159:22) at process._tickCallback (internal/process/next_tick.js:68:7) name: 'TimeoutError' }

Broken on updated publix site?

just reporting back that I think the publix site has updated and now this returns:

New document request: GET https://www.publix.com/savings/digital-coupons?sort=Newest
Error: No node found for selector: a.sign-in-button
    at Object.assert (/Users/diego/.npm/_npx/f4140283e38a4f6c/node_modules/puppeteer/lib/cjs/puppeteer/common/assert.js:26:15)
    at DOMWorld.click (/Users/diego/.npm/_npx/f4140283e38a4f6c/node_modules/puppeteer/lib/cjs/puppeteer/common/DOMWorld.js:277:21)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async Promise.all (index 2)
    at async logInToPublix (/Users/diego/.npm/_npx/f4140283e38a4f6c/node_modules/publix-coupon-clipper/dist/index.node.js:142:3)
    at async clipCoupons (/Users/diego/.npm/_npx/f4140283e38a4f6c/node_modules/publix-coupon-clipper/dist/index.node.js:60:5)
    at async main (/Users/diego/.npm/_npx/f4140283e38a4f6c/node_modules/publix-coupon-clipper/dist/index.node.js:268:3)
    at async /Users/diego/.npm/_npx/f4140283e38a4f6c/node_modules/publix-coupon-clipper/dist/index.node.js:24:7

The automated release is failing 🚨

🚨 The automated release from the master branch failed. 🚨

I recommend you give this issue a high priority, so other packages depending on you could benefit from your bug fixes and new features.

You can find below the list of errors reported by semantic-release. Each one of them has to be resolved in order to automatically publish your package. I’m sure you can resolve this πŸ’ͺ.

Errors are usually caused by a misconfiguration or an authentication problem. With each error reported below you will find explanation and guidance to help you to resolve it.

Once all the errors are resolved, semantic-release will release your package the next time you push a commit to the master branch. You can also manually restart the failed CI job that runs semantic-release.

If you are not sure how to resolve this, here is some links that can help you:

If those don’t help, or if this issue is reporting something you think isn’t right, you can always ask the humans behind semantic-release.


Invalid npm token.

The npm token configured in the NPM_TOKEN environment variable must be a valid token allowing to publish to the registry https://registry.npmjs.org/.

If you are using Two-Factor Authentication, make configure the auth-only level is supported. semantic-release cannot publish with the default auth-and-writes level.

Please make sure to set the NPM_TOKEN environment variable in your CI with the exact value of the npm token.


Good luck with your project ✨

Your semantic-release bot πŸ“¦πŸš€

Clueless clipper

I absolutely love this response to making us "clip" electronic coupons. I'm a semi-retired Solaris and Linux systems admin, but not a skilled javascript developer. When I try to use your tool, I get the following. I am clueless and would appreciate any help getting your coupon clipper to work. Other than redacting my Publix password, this is the output I get. I'm running this on Linux Mint.

Thanks!

$ npx publix-coupon-clipper [email protected] ************
Downloading Chromium r722234 - 121.1 Mb [====================] 100% 0.0s
(node:30284) UnhandledPromiseRejectionWarning: ReferenceError: URL is not defined
at Page.filterRequests (/home/jeff/.npm/_npx/30284/lib/node_modules/publix-coupon-clipper/dist/index.node.js:85:15)
at emitOne (events.js:116:13)
at Page.emit (events.js:211:7)
at NetworkManager.Page.networkManager.on.event (/home/jeff/.npm/_npx/30284/lib/node_modules/publix-coupon-clipper/node_modules/puppeteer/lib/Page.js:110:68)
at emitOne (events.js:121:20)
at NetworkManager.emit (events.js:211:7)
at NetworkManager._onRequest (/home/jeff/.npm/_npx/30284/lib/node_modules/publix-coupon-clipper/node_modules/puppeteer/lib/NetworkManager.js:234:10)
at NetworkManager._onRequestPaused (/home/jeff/.npm/_npx/30284/lib/node_modules/publix-coupon-clipper/node_modules/puppeteer/lib/NetworkManager.js:210:12)
at emitOne (events.js:116:13)
at CDPSession.emit (events.js:211:7)
(node:30284) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:30284) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
{ TimeoutError: Navigation timeout of 30000 ms exceeded
at Promise.then (/home/jeff/.npm/_npx/30284/lib/node_modules/publix-coupon-clipper/node_modules/puppeteer/lib/LifecycleWatcher.js:142:21)
at
-- ASYNC --
at Frame. (/home/jeff/.npm/_npx/30284/lib/node_modules/publix-coupon-clipper/node_modules/puppeteer/lib/helper.js:111:15)
at Page.goto (/home/jeff/.npm/_npx/30284/lib/node_modules/publix-coupon-clipper/node_modules/puppeteer/lib/Page.js:672:49)
at Page. (/home/jeff/.npm/_npx/30284/lib/node_modules/publix-coupon-clipper/node_modules/puppeteer/lib/helper.js:112:23)
at logInToPublix (/home/jeff/.npm/_npx/30284/lib/node_modules/publix-coupon-clipper/dist/index.node.js:116:14)
at clipCoupons (/home/jeff/.npm/_npx/30284/lib/node_modules/publix-coupon-clipper/dist/index.node.js:57:11)
at
at process._tickCallback (internal/process/next_tick.js:188:7) name: 'TimeoutError' }

Failed to clip

Failed to clip coupons

OS: Macbook Pro Big Sur 11.1

Terminal:

Setting up page
Logging in to Publix.com
New document request: GET https://www.publix.com/savings/digital-coupons
New document request: GET https://www.publix.com/login?redirectUrl=/savings/digital-coupons
New document request: GET https://account.publix.com/372cde5e-efa2-4da5-9b62-9ee9fd9c4bb8/b2c_1a_publixsigninmigration_signin/oauth2/v2.0/authorize?client_id=42e3d574-4d38-4d73-88da-1b894afb50ca&redirect_uri=https%3a%2f%2fwww.publix.com&response_mode=form_post&response_type=code+id_token&scope=openid+offline_access+https%3a%2f%2faccount.publix.com%2f42e3d574-4d38-4d73-88da-1b894afb50ca%2fpublix.read&state=OpenIdConnect.AuthenticationProperties%3drIUApxWT4nRX7_YU7kdlaO2jn3B8lxtethMxQFWD_7J78NMqm0io69MATX9Q0BZDjxSsppgpP5My1wzhcmLDWjFLpDNJtOYYCipkjItVaOji4mmeskVOiVj--vR9pwv00hen7lQSzx3P909ZsIXGlVxnITFkStlNtJosagxRBTXH3ACLkvNsJHlPkazAASZoI0A5SeQHpxnGeWdJ2NedkfZTgQ7rH-kDUlbEtE5W3e6xIhB7&nonce=637436473369679856.MWU5Yzc3MGItZTQ4MC00ODI1LWE0NmEtNWExYzc0OTBjNzc1NTdhMGNhNTItNzk0Ny00NGNlLWE3YWYtMDIwZTMwMWM1MmNk
New document request: GET https://account.publix.com/372cde5e-efa2-4da5-9b62-9ee9fd9c4bb8/B2C_1A_PublixSignInMigration_Signin/api/CombinedSigninAndSignup/confirmed?rememberMe=false&csrf_token=ODMzd0FVVm9DdWtSR3UwdldGYWxzOW45WW9HKzVuQ3FqdHk5Tkpaa2xtTFkrRmlBazVqam9TakZCVzQ2SWZIb3FOejhhb1VVY1pLNVNmWEVsdUZlOFE9PTsyMDIwLTEyLTE1VDE2OjQyOjE5LjI0MDU3MjZaO0Q0Zld2eUxMMmJKOEk0U09ENlFlY1E9PTt7Ik9yY2hlc3RyYXRpb25TdGVwIjoxfQ==&tx=StateProperties=eyJUSUQiOiIxMDllOTE0Zi00NGRhLTRmZjMtODUzZC0wNTcwNzI1YjI3YWYifQ&p=B2C_1A_PublixSignInMigration_Signin&diags=%7B%22pageViewId%22%3A%222193def8-6b89-488d-908a-3ff9de5db6d7%22%2C%22pageId%22%3A%22CombinedSigninAndSignup%22%2C%22trace%22%3A%5B%7B%22ac%22%3A%22T005%22%2C%22acST%22%3A1608050539%2C%22acD%22%3A2%7D%2C%7B%22ac%22%3A%22T021%20-%20URL%3Ahttps%3A%2F%2Fcutpstorb2c.blob.core.windows.net%2Fb2chtml%2Fpublix%2Funified.html%22%2C%22acST%22%3A1608050539%2C%22acD%22%3A246%7D%2C%7B%22ac%22%3A%22T029%22%2C%22acST%22%3A1608050539%2C%22acD%22%3A4%7D%2C%7B%22ac%22%3A%22T019%22%2C%22acST%22%3A1608050539%2C%22acD%22%3A8%7D%2C%7B%22ac%22%3A%22T004%22%2C%22acST%22%3A1608050539%2C%22acD%22%3A2%7D%2C%7B%22ac%22%3A%22T003%22%2C%22acST%22%3A1608050539%2C%22acD%22%3A3%7D%2C%7B%22ac%22%3A%22T035%22%2C%22acST%22%3A1608050540%2C%22acD%22%3A0%7D%2C%7B%22ac%22%3A%22T030Online%22%2C%22acST%22%3A1608050540%2C%22acD%22%3A0%7D%2C%7B%22ac%22%3A%22T002%22%2C%22acST%22%3A1608050542%2C%22acD%22%3A0%7D%2C%7B%22ac%22%3A%22T018T010%22%2C%22acST%22%3A1608050540%2C%22acD%22%3A2877%7D%5D%7D
New document request: POST https://www.publix.com/
New document request: GET https://www.publix.com/login-callback?redirectUrl=%2fsavings%2fdigital-coupons
New document request: GET https://www.publix.com/savings/digital-coupons
Logged in successfully
Clipping coupons
Found 133 coupon(s) to clip
Clipping coupon #1
Failed to clip
Clipping coupon #2
Failed to clip
Clipping coupon #3
Failed to clip
Clipping coupon #4
Failed to clip
Clipping coupon #5
Failed to clip
Clipping coupon #6
Failed to clip
Clipping coupon #7
Failed to clip
Clipping coupon #8
Failed to clip
Clipping coupon #9
Failed to clip
Clipping coupon #10
Failed to clip
Clipping coupon #11
Failed to clip
Clipping coupon #12
Failed to clip
Clipping coupon #13
Failed to clip
Clipping coupon #14
Failed to clip
Clipping coupon #15
Failed to clip
Clipping coupon #16
Failed to clip
Clipping coupon #17
Failed to clip
Clipping coupon #18
Failed to clip
Clipping coupon #19
Failed to clip
Clipping coupon #20
Failed to clip
Clipping coupon #21
Failed to clip
Clipping coupon #22
Failed to clip
Clipping coupon #23
Failed to clip
Clipping coupon #24
Failed to clip
Clipping coupon #25
Failed to clip
Clipping coupon #26
Failed to clip
Clipping coupon #27
Failed to clip
Clipping coupon #28
Failed to clip
Clipping coupon #29
Failed to clip
Clipping coupon #30
Failed to clip
Clipping coupon #31
Failed to clip
Clipping coupon #32
Failed to clip
Clipping coupon #33
Failed to clip
Clipping coupon #34
Failed to clip
Clipping coupon #35
Failed to clip
Clipping coupon #36
Failed to clip
Clipping coupon #37
Failed to clip
Clipping coupon #38
Failed to clip
Clipping coupon #39
Failed to clip
Clipping coupon #40
Failed to clip
Clipping coupon #41
Failed to clip
Clipping coupon #42
Failed to clip
Clipping coupon #43
Failed to clip
Clipping coupon #44
Failed to clip
Clipping coupon #45
Failed to clip
Clipping coupon #46
Failed to clip
Clipping coupon #47
Failed to clip
Clipping coupon #48
Failed to clip
Clipping coupon #49
Failed to clip
Clipping coupon #50
Failed to clip
Clipping coupon #51
Failed to clip
Clipping coupon #52
Failed to clip
Clipping coupon #53
Failed to clip
Clipping coupon #54
Failed to clip
Clipping coupon #55
Failed to clip
Clipping coupon #56
Failed to clip
Clipping coupon #57
Failed to clip
Clipping coupon #58
Failed to clip
Clipping coupon #59
Failed to clip
Clipping coupon #60
Failed to clip
Clipping coupon #61
Failed to clip
Clipping coupon #62
Failed to clip
Clipping coupon #63
Failed to clip
Clipping coupon #64
Failed to clip
Clipping coupon #65
Failed to clip
Clipping coupon #66
Failed to clip
Clipping coupon #67
Failed to clip
Clipping coupon #68
Failed to clip
Clipping coupon #69
Failed to clip
Clipping coupon #70
Failed to clip
Clipping coupon #71
Failed to clip
Clipping coupon #72
Failed to clip
Clipping coupon #73
Failed to clip
Clipping coupon #74
Failed to clip
Clipping coupon #75
Failed to clip
Clipping coupon #76
Failed to clip
Clipping coupon #77
Failed to clip
Clipping coupon #78
Failed to clip
Clipping coupon #79
Failed to clip
Clipping coupon #80
Failed to clip
Clipping coupon #81
Failed to clip
Clipping coupon #82
Failed to clip
Clipping coupon #83
Failed to clip
Clipping coupon #84
Failed to clip
Clipping coupon #85
Failed to clip
Clipping coupon #86
Failed to clip
Clipping coupon #87
Failed to clip
Clipping coupon #88
Failed to clip
Clipping coupon #89
Failed to clip
Clipping coupon #90
Failed to clip
Clipping coupon #91
Failed to clip
Clipping coupon #92
Failed to clip
Clipping coupon #93
Failed to clip
Clipping coupon #94
Failed to clip
Clipping coupon #95
Failed to clip
Clipping coupon #96
Failed to clip
Clipping coupon #97
Failed to clip
Clipping coupon #98
Failed to clip
Clipping coupon #99
Failed to clip
Clipping coupon #100
Failed to clip
Clipping coupon #101
Failed to clip
Clipping coupon #102
Failed to clip
Clipping coupon #103
Failed to clip
Clipping coupon #104
Failed to clip
Clipping coupon #105
Failed to clip
Clipping coupon #106
Failed to clip
Clipping coupon #107
Failed to clip
Clipping coupon #108
Failed to clip
Clipping coupon #109
Failed to clip
Clipping coupon #110
Failed to clip
Clipping coupon #111
Failed to clip
Clipping coupon #112
Failed to clip
Clipping coupon #113
Failed to clip
Clipping coupon #114
Failed to clip
Clipping coupon #115
Failed to clip
Clipping coupon #116
Failed to clip
Clipping coupon #117
Failed to clip
Clipping coupon #118
Failed to clip
Clipping coupon #119
Failed to clip
Clipping coupon #120
Failed to clip
Clipping coupon #121
Failed to clip
Clipping coupon #122
Failed to clip
Clipping coupon #123
Failed to clip
Clipping coupon #124
Failed to clip
Clipping coupon #125
Failed to clip
Clipping coupon #126
Failed to clip
Clipping coupon #127
Failed to clip
Clipping coupon #128
Failed to clip
Clipping coupon #129
Failed to clip
Clipping coupon #130
Failed to clip
Clipping coupon #131
Failed to clip
Clipping coupon #132
Failed to clip
Clipping coupon #133
Failed to clip
Clipped 0 coupon(s), failed to clip 133

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.