diff --git a/.codespellrc b/.codespellrc new file mode 100644 index 0000000..101edae --- /dev/null +++ b/.codespellrc @@ -0,0 +1,7 @@ +# See: https://github.com/codespell-project/codespell#using-a-config-file +[codespell] +# In the event of a false positive, add the problematic word, in all lowercase, to a comma-separated list here: +ignore-words-list = , +check-filenames = +check-hidden = +skip = ./.git diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..03600dd --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,10 @@ +# See: https://docs.github.com/en/github/administering-a-repository/configuration-options-for-dependency-updates#about-the-dependabotyml-file +version: 2 + +updates: + # Configure check for outdated GitHub Actions actions in workflows. + # See: https://docs.github.com/en/github/administering-a-repository/keeping-your-actions-up-to-date-with-dependabot + - package-ecosystem: github-actions + directory: / # Check the repository's workflows under /.github/workflows/ + schedule: + interval: daily diff --git a/.github/workflows/check-arduino.yml b/.github/workflows/check-arduino.yml new file mode 100644 index 0000000..0d969f6 --- /dev/null +++ b/.github/workflows/check-arduino.yml @@ -0,0 +1,28 @@ +name: Check Arduino + +# See: https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows +on: + push: + pull_request: + schedule: + # Run every Tuesday at 8 AM UTC to catch breakage caused by new rules added to Arduino Lint. + - cron: "0 8 * * TUE" + workflow_dispatch: + repository_dispatch: + +jobs: + lint: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Arduino Lint + uses: arduino/arduino-lint-action@v1 + with: + compliance: specification + library-manager: update + # Always use this setting for official repositories. Remove for 3rd party projects. + official: true + project-type: library diff --git a/.github/workflows/compile-examples.yml b/.github/workflows/compile-examples.yml new file mode 100644 index 0000000..d363d82 --- /dev/null +++ b/.github/workflows/compile-examples.yml @@ -0,0 +1,62 @@ +name: Compile Examples + +# See: https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows +on: + push: + paths: + - ".github/workflows/compile-examples.yml" + - "examples/**" + - "src/**" + pull_request: + paths: + - ".github/workflows/compile-examples.yml" + - "examples/**" + - "src/**" + schedule: + # Run every Tuesday at 8 AM UTC to catch breakage caused by changes to external resources (libraries, platforms). + - cron: "0 8 * * TUE" + workflow_dispatch: + repository_dispatch: + +jobs: + build: + name: ${{ matrix.board.fqbn }} + runs-on: ubuntu-latest + + env: + SKETCHES_REPORTS_PATH: sketches-reports + + strategy: + fail-fast: false + + matrix: + board: + - fqbn: arduino:samd:mkr1000 + platforms: | + - name: arduino:samd + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Compile examples + uses: arduino/compile-sketches@v1 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + fqbn: ${{ matrix.board.fqbn }} + platforms: ${{ matrix.board.platforms }} + libraries: | + # Install the library from the local path. + - source-path: ./ + - name: WiFi101 + sketch-paths: | + - examples + enable-deltas-report: true + sketches-report-path: ${{ env.SKETCHES_REPORTS_PATH }} + + - name: Save sketches report as workflow artifact + uses: actions/upload-artifact@v2 + with: + if-no-files-found: error + path: ${{ env.SKETCHES_REPORTS_PATH }} + name: ${{ env.SKETCHES_REPORTS_PATH }} diff --git a/.github/workflows/report-size-deltas.yml b/.github/workflows/report-size-deltas.yml new file mode 100644 index 0000000..652be5d --- /dev/null +++ b/.github/workflows/report-size-deltas.yml @@ -0,0 +1,24 @@ +name: Report Size Deltas + +# See: https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows +on: + push: + paths: + - ".github/workflows/report-size-deltas.yml" + schedule: + # Run at the minimum interval allowed by GitHub Actions. + # Note: GitHub Actions periodically has outages which result in workflow failures. + # In this event, the workflows will start passing again once the service recovers. + - cron: "*/5 * * * *" + workflow_dispatch: + repository_dispatch: + +jobs: + report: + runs-on: ubuntu-latest + steps: + - name: Comment size deltas reports to PRs + uses: arduino/report-size-deltas@v1 + with: + # The name of the workflow artifact created by the sketch compilation workflow + sketches-reports-source: sketches-reports diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml new file mode 100644 index 0000000..01bee87 --- /dev/null +++ b/.github/workflows/spell-check.yml @@ -0,0 +1,22 @@ +name: Spell Check + +# See: https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows +on: + push: + pull_request: + schedule: + # Run every Tuesday at 8 AM UTC to catch new misspelling detections resulting from dictionary updates. + - cron: "0 8 * * TUE" + workflow_dispatch: + repository_dispatch: + +jobs: + spellcheck: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Spell check + uses: codespell-project/actions-codespell@master diff --git a/CHANGELOG.md b/CHANGELOG.md index ac78d18..fc0e879 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ ## ArduinoHttpClient 0.3.1 - 2017.09.25 * Changed examples to support Arduino Create secret tabs -* Increase WebSocket secrect-key length to 24 characters +* Increase WebSocket secret-key length to 24 characters ## ArduinoHttpClient 0.3.0 - 2017.04.20 diff --git a/README.md b/README.md index 1b95559..e9c163b 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,9 @@ # ArduinoHttpClient +[![Check Arduino status](https://github.com/arduino-libraries/ArduinoHttpClient/actions/workflows/check-arduino.yml/badge.svg)](https://github.com/arduino-libraries/ArduinoHttpClient/actions/workflows/check-arduino.yml) +[![Compile Examples status](https://github.com/arduino-libraries/ArduinoHttpClient/actions/workflows/compile-examples.yml/badge.svg)](https://github.com/arduino-libraries/ArduinoHttpClient/actions/workflows/compile-examples.yml) +[![Spell Check status](https://github.com/arduino-libraries/ArduinoHttpClient/actions/workflows/spell-check.yml/badge.svg)](https://github.com/arduino-libraries/ArduinoHttpClient/actions/workflows/spell-check.yml) + ArduinoHttpClient is a library to make it easier to interact with web servers from Arduino. Derived from [Adrian McEwen's HttpClient library](https://github.com/amcewen/HttpClient) diff --git a/examples/BasicAuthGet/BasicAuthGet.ino b/examples/BasicAuthGet/BasicAuthGet.ino index ca801b7..861acc1 100644 --- a/examples/BasicAuthGet/BasicAuthGet.ino +++ b/examples/BasicAuthGet/BasicAuthGet.ino @@ -15,7 +15,7 @@ #include #include "arduino_secrets.h" ///////please enter your sensitive data in the Secret tab/arduino_secrets.h -/////// Wifi Settings /////// +/////// WiFi Settings /////// char ssid[] = SECRET_SSID; char pass[] = SECRET_PASS; diff --git a/examples/CustomHeader/CustomHeader.ino b/examples/CustomHeader/CustomHeader.ino index e2131eb..4b8abbb 100644 --- a/examples/CustomHeader/CustomHeader.ino +++ b/examples/CustomHeader/CustomHeader.ino @@ -15,7 +15,7 @@ #include "arduino_secrets.h" ///////please enter your sensitive data in the Secret tab/arduino_secrets.h -/////// Wifi Settings /////// +/////// WiFi Settings /////// char ssid[] = SECRET_SSID; char pass[] = SECRET_PASS; diff --git a/examples/DweetGet/DweetGet.ino b/examples/DweetGet/DweetGet.ino index d191285..1c26c35 100644 --- a/examples/DweetGet/DweetGet.ino +++ b/examples/DweetGet/DweetGet.ino @@ -20,7 +20,7 @@ #include "arduino_secrets.h" ///////please enter your sensitive data in the Secret tab/arduino_secrets.h -/////// Wifi Settings /////// +/////// WiFi Settings /////// char ssid[] = SECRET_SSID; char pass[] = SECRET_PASS; diff --git a/examples/DweetPost/DweetPost.ino b/examples/DweetPost/DweetPost.ino index f1da2b9..17e76f5 100644 --- a/examples/DweetPost/DweetPost.ino +++ b/examples/DweetPost/DweetPost.ino @@ -16,7 +16,7 @@ #include "arduino_secrets.h" ///////please enter your sensitive data in the Secret tab/arduino_secrets.h -/////// Wifi Settings /////// +/////// WiFi Settings /////// char ssid[] = SECRET_SSID; char pass[] = SECRET_PASS; diff --git a/examples/HueBlink/HueBlink.ino b/examples/HueBlink/HueBlink.ino index eab74fe..0583fe9 100644 --- a/examples/HueBlink/HueBlink.ino +++ b/examples/HueBlink/HueBlink.ino @@ -10,7 +10,7 @@ The body of the PUT request looks like this: {"on": true} or {"on":false} - This example shows how to concatenate Strings to assemble the + This example shows how to concatenate Strings to assemble the PUT request and the body of the request. modified 15 Feb 2016 @@ -23,16 +23,16 @@ #include "arduino_secrets.h" ///////please enter your sensitive data in the Secret tab/arduino_secrets.h -/////// Wifi Settings /////// +/////// WiFi Settings /////// char ssid[] = SECRET_SSID; char pass[] = SECRET_PASS; -int status = WL_IDLE_STATUS; // the Wifi radio's status +int status = WL_IDLE_STATUS; // the WiFi radio's status char hueHubIP[] = "192.168.0.3"; // IP address of the HUE bridge String hueUserName = "huebridgeusername"; // hue bridge username -// make a wifi instance and a HttpClient instance: +// make a WiFiClient instance and a HttpClient instance: WiFiClient wifi; HttpClient httpClient = HttpClient(wifi, hueHubIP); @@ -42,7 +42,7 @@ void setup() { Serial.begin(9600); while (!Serial); // wait for serial port to connect. - // attempt to connect to Wifi network: + // attempt to connect to WiFi network: while ( status != WL_CONNECTED) { Serial.print("Attempting to connect to WPA SSID: "); Serial.println(ssid); @@ -95,4 +95,4 @@ void sendRequest(int light, String cmd, String value) { Serial.print("Server response: "); Serial.println(response); Serial.println(); -} \ No newline at end of file +} diff --git a/examples/PostWithHeaders/PostWithHeaders.ino b/examples/PostWithHeaders/PostWithHeaders.ino index c2b1f0a..f97439f 100644 --- a/examples/PostWithHeaders/PostWithHeaders.ino +++ b/examples/PostWithHeaders/PostWithHeaders.ino @@ -1,7 +1,7 @@ /* POST with headers client for ArduinoHttpClient library Connects to server once every five seconds, sends a POST request - with custome headers and a request body + with custom headers and a request body created 14 Feb 2016 by Tom Igoe @@ -18,7 +18,7 @@ #include "arduino_secrets.h" ///////please enter your sensitive data in the Secret tab/arduino_secrets.h -/////// Wifi Settings /////// +/////// WiFi Settings /////// char ssid[] = SECRET_SSID; char pass[] = SECRET_PASS; diff --git a/examples/SimpleDelete/SimpleDelete.ino b/examples/SimpleDelete/SimpleDelete.ino index 120f8d4..336cb7a 100644 --- a/examples/SimpleDelete/SimpleDelete.ino +++ b/examples/SimpleDelete/SimpleDelete.ino @@ -15,7 +15,7 @@ #include "arduino_secrets.h" ///////please enter your sensitive data in the Secret tab/arduino_secrets.h -/////// Wifi Settings /////// +/////// WiFi Settings /////// char ssid[] = SECRET_SSID; char pass[] = SECRET_PASS; diff --git a/examples/SimpleGet/SimpleGet.ino b/examples/SimpleGet/SimpleGet.ino index 90d1f68..759b13f 100644 --- a/examples/SimpleGet/SimpleGet.ino +++ b/examples/SimpleGet/SimpleGet.ino @@ -14,7 +14,7 @@ #include "arduino_secrets.h" ///////please enter your sensitive data in the Secret tab/arduino_secrets.h -/////// Wifi Settings /////// +/////// WiFi Settings /////// char ssid[] = SECRET_SSID; char pass[] = SECRET_PASS; diff --git a/examples/SimpleHttpExample/SimpleHttpExample.ino b/examples/SimpleHttpExample/SimpleHttpExample.ino index f64b9ba..449d6af 100644 --- a/examples/SimpleHttpExample/SimpleHttpExample.ino +++ b/examples/SimpleHttpExample/SimpleHttpExample.ino @@ -2,7 +2,7 @@ // Released under Apache License, version 2.0 // // Simple example to show how to use the HttpClient library -// Get's the web page given at http:// and +// Gets the web page given at http:// and // outputs the content to the serial port #include @@ -14,7 +14,7 @@ #include "arduino_secrets.h" ///////please enter your sensitive data in the Secret tab/arduino_secrets.h -/////// Wifi Settings /////// +/////// WiFi Settings /////// char ssid[] = SECRET_SSID; char pass[] = SECRET_PASS; @@ -42,7 +42,7 @@ void setup() ; // wait for serial port to connect. Needed for native USB port only } - // attempt to connect to Wifi network: + // attempt to connect to WiFi network: Serial.print("Attempting to connect to WPA SSID: "); Serial.println(ssid); while (WiFi.begin(ssid, pass) != WL_CONNECTED) { @@ -129,5 +129,3 @@ void loop() // And just stop, now that we've tried a download while(1); } - - diff --git a/examples/SimplePost/SimplePost.ino b/examples/SimplePost/SimplePost.ino index a4704e5..8717438 100644 --- a/examples/SimplePost/SimplePost.ino +++ b/examples/SimplePost/SimplePost.ino @@ -14,7 +14,7 @@ #include "arduino_secrets.h" ///////please enter your sensitive data in the Secret tab/arduino_secrets.h -/////// Wifi Settings /////// +/////// WiFi Settings /////// char ssid[] = SECRET_SSID; char pass[] = SECRET_PASS; diff --git a/examples/SimplePut/SimplePut.ino b/examples/SimplePut/SimplePut.ino index 99af49f..06dcd15 100644 --- a/examples/SimplePut/SimplePut.ino +++ b/examples/SimplePut/SimplePut.ino @@ -14,7 +14,7 @@ #include "arduino_secrets.h" ///////please enter your sensitive data in the Secret tab/arduino_secrets.h -/////// Wifi Settings /////// +/////// WiFi Settings /////// char ssid[] = SECRET_SSID; char pass[] = SECRET_PASS; diff --git a/examples/SimpleWebSocket/SimpleWebSocket.ino b/examples/SimpleWebSocket/SimpleWebSocket.ino index b20d74b..32f74e1 100644 --- a/examples/SimpleWebSocket/SimpleWebSocket.ino +++ b/examples/SimpleWebSocket/SimpleWebSocket.ino @@ -15,7 +15,7 @@ #include "arduino_secrets.h" ///////please enter your sensitive data in the Secret tab/arduino_secrets.h -/////// Wifi Settings /////// +/////// WiFi Settings /////// char ssid[] = SECRET_SSID; char pass[] = SECRET_PASS; diff --git a/keywords.txt b/keywords.txt index 1b4bd2c..209c917 100644 --- a/keywords.txt +++ b/keywords.txt @@ -1,5 +1,5 @@ ####################################### -# Syntax Coloring Map For HttpClient +# Syntax Coloring Map For ArduinoHttpClient ####################################### ####################################### diff --git a/library.json b/library.json index 6bbda24..5376d0a 100644 --- a/library.json +++ b/library.json @@ -1,7 +1,7 @@ { "name": "ArduinoHttpClient", "keywords": "http, web, client, ethernet, wifi, GSM", - "description": "Easily interact with web servers from Arduino, using HTTP and WebSocket's.", + "description": "Easily interact with web servers from Arduino, using HTTP and WebSockets.", "repository": { "type": "git", diff --git a/library.properties b/library.properties index 632910e..2682599 100644 --- a/library.properties +++ b/library.properties @@ -2,7 +2,7 @@ name=ArduinoHttpClient version=0.4.0 author=Arduino maintainer=Arduino -sentence=[EXPERIMENTAL] Easily interact with web servers from Arduino, using HTTP and WebSocket's. +sentence=[EXPERIMENTAL] Easily interact with web servers from Arduino, using HTTP and WebSockets. paragraph=This library can be used for HTTP (GET, POST, PUT, DELETE) requests to a web server. It also supports exchanging messages with WebSocket servers. Based on Adrian McEwen's HttpClient library. category=Communication url=https://github.com/arduino-libraries/ArduinoHttpClient diff --git a/src/HttpClient.cpp b/src/HttpClient.cpp index 4f3410f..1c73464 100644 --- a/src/HttpClient.cpp +++ b/src/HttpClient.cpp @@ -587,7 +587,7 @@ String HttpClient::responseBody() } if (bodyLength > 0 && (unsigned int)bodyLength != response.length()) { - // failure, we did not read in reponse content length bytes + // failure, we did not read in response content length bytes return String((const char*)NULL); } @@ -685,7 +685,7 @@ int HttpClient::read() bool HttpClient::headerAvailable() { - // clear the currently store header line + // clear the currently stored header line iHeaderLine = ""; while (!endOfHeadersReached()) diff --git a/src/HttpClient.h b/src/HttpClient.h index 38fd799..6a7aa1d 100644 --- a/src/HttpClient.h +++ b/src/HttpClient.h @@ -228,7 +228,7 @@ public: */ String readHeaderName(); - /** Read the vallue of the current response header. + /** Read the value of the current response header. Returns empty string if a header is not available. */ String readHeaderValue(); @@ -341,7 +341,7 @@ protected: // Number of milliseconds that we wait each time there isn't any data // available to be read (during status code and header processing) static const int kHttpWaitForDataDelay = 1000; - // Number of milliseconds that we'll wait in total without receiveing any + // Number of milliseconds that we'll wait in total without receiving any // data before returning HTTP_ERROR_TIMED_OUT (during status code and header // processing) static const int kHttpResponseTimeout = 30*1000;