Skip to content
Snippets Groups Projects
Commit 1a4af679 authored by nimrod's avatar nimrod
Browse files

Pretty much that.

parent c47b69b5
No related branches found
No related tags found
No related merge requests found
.envrc 0 → 100644
source_up
layout pipenv
~*
*~
*.sw[op]
*.py[cod]
.DS_Store
__pycache__/
.vagrant/
vendor/
Thumbs.db
*.retry
.svn/
.sass-cache/
*.log
*.out
*.so
node_modules/
.npm/
nbproject/
*.ipynb
.idea/
*.egg-info/
*.[ao]
.classpath
.cache/
bower_components/
*.class
*.[ewj]ar
secring.*
.*.kate-swp
.swp.*
.directory
.Trash-*
build/
_build/
dist/
.tox/
*.pdf
*.exe
*.dll
*.gz
*.tgz
*.tar
*.rar
*.zip
*.pid
*.lock
*.env
.bundle/
!Pipfile.lock
---
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.0.0
hooks:
- id: check-added-large-files
- id: check-executables-have-shebangs
- id: check-merge-conflict
- id: check-yaml
- id: detect-private-key
- id: flake8
args:
- '--max-line-length=79'
- repo: https://github.com/ambv/black
rev: 18.9b0
hooks:
- id: black
language_version: python3.6
args:
- |
--line-length=79
- repo: https://github.com/pre-commit/mirrors-pylint.git
rev: v2.1.1
hooks:
- id: pylint
args:
- |
--disable=invalid-name,import-error,missing-docstring
Pipfile 0 → 100644
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
requests = "*"
parse = "*"
[dev-packages]
pre-commit = "*"
[requires]
python_version = "3.6"
{
"_meta": {
"hash": {
"sha256": "98ebdd3e85cb2f22dd8d72ef5c193c6f12db85a2f7148433b5f04a12d5ed0517"
},
"pipfile-spec": 6,
"requires": {
"python_version": "3.6"
},
"sources": [
{
"name": "pypi",
"url": "https://pypi.org/simple",
"verify_ssl": true
}
]
},
"default": {
"certifi": {
"hashes": [
"sha256:339dc09518b07e2fa7eda5450740925974815557727d6bd35d319c1524a04a4c",
"sha256:6d58c986d22b038c8c0df30d639f23a3e6d172a05c3583e766f4c0b785c0986a"
],
"version": "==2018.10.15"
},
"chardet": {
"hashes": [
"sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae",
"sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"
],
"version": "==3.0.4"
},
"idna": {
"hashes": [
"sha256:156a6814fb5ac1fc6850fb002e0852d56c0c8d2531923a51032d1b70760e186e",
"sha256:684a38a6f903c1d71d6d5fac066b58d7768af4de2b832e426ec79c30daa94a16"
],
"version": "==2.7"
},
"parse": {
"hashes": [
"sha256:9dd6048ea212cd032a342f9f6aa2b7bc222f7407c7e37bdc2777fecd36897437"
],
"index": "pypi",
"version": "==1.9.0"
},
"requests": {
"hashes": [
"sha256:99dcfdaaeb17caf6e526f32b6a7b780461512ab3f1d992187801694cba42770c",
"sha256:a84b8c9ab6239b578f22d1c21d51b696dcfe004032bb80ea832398d6909d7279"
],
"index": "pypi",
"version": "==2.20.0"
},
"urllib3": {
"hashes": [
"sha256:41c3db2fc01e5b907288010dec72f9d0a74e37d6994e6eb56849f59fea2265ae",
"sha256:8819bba37a02d143296a4d032373c4dd4aca11f6d4c9973335ca75f9c8475f59"
],
"version": "==1.24"
}
},
"develop": {
"aspy.yaml": {
"hashes": [
"sha256:04d26279513618f1024e1aba46471db870b3b33aef204c2d09bcf93bea9ba13f",
"sha256:0a77e23fafe7b242068ffc0252cee130d3e509040908fc678d9d1060e7494baa"
],
"version": "==1.1.1"
},
"cached-property": {
"hashes": [
"sha256:3a026f1a54135677e7da5ce819b0c690f156f37976f3e30c5430740725203d7f",
"sha256:9217a59f14a5682da7c4b8829deadbfc194ac22e9908ccf7c8820234e80a1504"
],
"version": "==1.5.1"
},
"cfgv": {
"hashes": [
"sha256:73f48a752bd7aab103c4b882d6596c6360b7aa63b34073dd2c35c7b4b8f93010",
"sha256:d1791caa9ff5c0c7bce80e7ecc1921752a2eb7c2463a08ed9b6c96b85a2f75aa"
],
"version": "==1.1.0"
},
"identify": {
"hashes": [
"sha256:5e956558a9a1e3b3891d7c6609fc9709657a11878af288ace484d1a46a93922b",
"sha256:623086059219cc7b86c77a3891f3700cb175d4ce02b8fb8802b047301d71e783"
],
"version": "==1.1.7"
},
"nodeenv": {
"hashes": [
"sha256:aa040ab5189bae17d272175609010be6c5b589ec4b8dbd832cc50c9e9cb7496f"
],
"version": "==1.3.2"
},
"pre-commit": {
"hashes": [
"sha256:98ec318db1f255e3d5089ae416959ef3c775215a3509620027d446eeabbba740",
"sha256:b68f9219c56b50ebafb57f378c5325f9876d06fb29e9cd05daf5cbd6676ce8f2"
],
"index": "pypi",
"version": "==1.11.2"
},
"pyyaml": {
"hashes": [
"sha256:254bf6fda2b7c651837acb2c718e213df29d531eebf00edb54743d10bcb694eb",
"sha256:3108529b78577327d15eec243f0ff348a0640b0c3478d67ad7f5648f93bac3e2",
"sha256:3c17fb92c8ba2f525e4b5f7941d850e7a48c3a59b32d331e2502a3cdc6648e76",
"sha256:8d6d96001aa7f0a6a4a95e8143225b5d06e41b1131044913fecb8f85a125714b",
"sha256:c8a88edd93ee29ede719080b2be6cb2333dfee1dccba213b422a9c8e97f2967b"
],
"version": "==4.2b4"
},
"six": {
"hashes": [
"sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9",
"sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb"
],
"version": "==1.11.0"
},
"toml": {
"hashes": [
"sha256:229f81c57791a41d65e399fc06bf0848bab550a9dfd5ed66df18ce5f05e73d5c",
"sha256:235682dd292d5899d361a811df37e04a8828a5b1da3115886b73cf81ebc9100e"
],
"version": "==0.10.0"
},
"virtualenv": {
"hashes": [
"sha256:2ce32cd126117ce2c539f0134eb89de91a8413a29baac49cbab3eb50e2026669",
"sha256:ca07b4c0b54e14a91af9f34d0919790b016923d157afda5efdde55c96718f752"
],
"version": "==16.0.0"
}
}
}
# HiringSolved challenge
My solution to the HiringSolved challenge. If anyone from HiringSolved is
reading this, my actual site is at <https://www.shore.co.il/blog>.
1. __Math challenge__:
I did it in my head.
1. __Haystack challenge__:
I googled the question and copied the answer from
<https://puzzling.stackexchange.com/a/59513>.
1. __Breadcrumbe challenge__:
For this I wrote some Python. The code is in `breadcrumbs.py` and to run it
you need Python 3.6 and pipenv (I also use direnv for convience). To use it run
`pipenv run ./breadcrumbs.py`.
1. __Monster challenge__:
From reading the cookies from the previous challenge, I searched the DOM for
`true` and found `true-blue`, took the color hex from there and added to the
URL.
1. __Post challenge__:
Not much of a challenge. I fiddled a bit with `curl` and posted using the
following command:
```
curl -XPOST 'https://challenge.hiringsolved.com/REDACTED?hirable=true&name=Nimrod+Adar&email=nimrod@shore.co.il&website=https://github.com/adarnimrod/hs-challenge'
```
#!/usr/bin/env python3
from sys import stderr
from requests import get
from parse import ( # pylint: disable=redefined-builtin,no-name-in-module
compile,
)
BASE_URL = "https://challenge.hiringsolved.com/breadcrumbs/"
INITIAL_CRUMB = 19196
NEXT_PARSER = compile("the next breadcrumb is {:d}", case_sensitive=True)
SUBTRACT_PARSER = compile(
"Yes. Subtract {:d} and keep going.", case_sensitive=True
)
ADD_PARSER = compile("Yes. Add {:d} and keep going.", case_sensitive=True)
if __name__ == "__main__":
crumb = INITIAL_CRUMB
previous = ""
while True:
r = get(BASE_URL + str(crumb))
print(r.cookies.get("info"))
print(r.text, file=stderr)
if r.text == previous:
print("Stuck on the same message.", file=stderr)
exit(1)
previous = r.text
if NEXT_PARSER.search(r.text):
crumb = NEXT_PARSER.search(r.text)[0]
elif ADD_PARSER.search(r.text):
crumb = crumb + ADD_PARSER.search(r.text)[0]
elif SUBTRACT_PARSER.search(r.text):
crumb = crumb - SUBTRACT_PARSER.search(r.text)[0]
else:
print("Don't know what to do.", file=stderr)
exit(1)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment