From e6dbf5bdddd4767920dc128fd3acf654251fd14c Mon Sep 17 00:00:00 2001 From: Florent Ravenel Date: Mon, 13 Nov 2023 09:12:12 +0100 Subject: [PATCH 1/4] fix: rename and fix error --- ...b => LinkedIn_Get_post_poll_results.ipynb} | 54 +++++--------- ...st.ipynb => LinkedIn_Get_post_stats.ipynb} | 71 +++++++++---------- 2 files changed, 51 insertions(+), 74 deletions(-) rename LinkedIn/{LinkedIn_Get_polls_from_post.ipynb => LinkedIn_Get_post_poll_results.ipynb} (88%) rename LinkedIn/{LinkedIn_Get_stats_from_post.ipynb => LinkedIn_Get_post_stats.ipynb} (80%) diff --git a/LinkedIn/LinkedIn_Get_polls_from_post.ipynb b/LinkedIn/LinkedIn_Get_post_poll_results.ipynb similarity index 88% rename from LinkedIn/LinkedIn_Get_polls_from_post.ipynb rename to LinkedIn/LinkedIn_Get_post_poll_results.ipynb index fad008d423..f669d9035a 100644 --- a/LinkedIn/LinkedIn_Get_polls_from_post.ipynb +++ b/LinkedIn/LinkedIn_Get_post_poll_results.ipynb @@ -60,7 +60,7 @@ "tags": [] }, "source": [ - "**Last update:** 2023-05-29 (Created: 2022-01-27)" + "**Last update:** 2023-11-13 (Created: 2022-01-27)" ] }, { @@ -127,57 +127,41 @@ "outputs": [], "source": [ "from naas_drivers import linkedin\n", - "import plotly.express as px" + "import plotly.express as px\n", + "import naas" ] }, { "cell_type": "markdown", - "id": "hairy-breathing", + "id": "77cd5957-cede-4fb2-998e-a0e668c0e543", "metadata": { "papermill": {}, "tags": [] }, "source": [ - "### Get your cookies\n", - "How to get your cookies ?" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "amended-optics", - "metadata": { - "papermill": {}, - "tags": [] - }, - "outputs": [], - "source": [ - "LI_AT = \"YOUR_COOKIE_LI_AT\" # EXAMPLE AQFAzQN_PLPR4wAAAXc-FCKmgiMit5FLdY1af3-2\n", - "JSESSIONID = \"YOUR_COOKIE_JSESSIONID\" # EXAMPLE ajax:8379907400220387585" - ] - }, - { - "cell_type": "markdown", - "id": "upper-allergy", - "metadata": { - "papermill": {}, - "tags": [] - }, - "source": [ - "### Enter post URL" + "### Setup variables\n", + "**Mandatory**\n", + "\n", + "[Learn how to get your cookies on LinkedIn](https://www.notion.so/LinkedIn-driver-Get-your-cookies-d20a8e7e508e42af8a5b52e33f3dba75)\n", + "- `li_at`: Cookie used to authenticate Members and API clients.\n", + "- `JSESSIONID`: Cookie used for Cross Site Request Forgery (CSRF) protection and URL signature validation.\n", + "- `linkedin_url`: LinkedIn post URL" ] }, { "cell_type": "code", "execution_count": null, - "id": "noted-observer", + "id": "4cc42457-533c-4293-8f91-0a955daeee2b", "metadata": { "papermill": {}, "tags": [] }, "outputs": [], "source": [ - "POST_URL = \"POST_URL\"" + "# Mandatory\n", + "li_at = naas.secret.get(\"LINKEDIN_LI_AT\") or \"YOUR_LINKEDIN_LI_AT\" #example: AQFAzQN_PLPR4wAAAXc-FCKmgiMit5FLdY1af3-2\n", + "JSESSIONID = naas.secret.get(\"LINKEDIN_JSESSIONID\") or \"YOUR_LINKEDIN_JSESSIONID\" #example: ajax:8379907400220387585\n", + "linkedin_url = \"\"" ] }, { @@ -199,7 +183,7 @@ "tags": [] }, "source": [ - "### Get poll results from post" + "### Get poll results" ] }, { @@ -212,7 +196,7 @@ }, "outputs": [], "source": [ - "df = linkedin.connect(LI_AT, JSESSIONID).post.get_polls(POST_URL)\n", + "df = linkedin.connect(JSESSIONID, JSESSIONID).post.get_polls(linkedin_url)\n", "print(\"📝 Nb of poll results\", len(df))\n", "df.head(5)" ] @@ -360,4 +344,4 @@ }, "nbformat": 4, "nbformat_minor": 5 -} \ No newline at end of file +} diff --git a/LinkedIn/LinkedIn_Get_stats_from_post.ipynb b/LinkedIn/LinkedIn_Get_post_stats.ipynb similarity index 80% rename from LinkedIn/LinkedIn_Get_stats_from_post.ipynb rename to LinkedIn/LinkedIn_Get_post_stats.ipynb index 49f9e28416..d14a18bd51 100644 --- a/LinkedIn/LinkedIn_Get_stats_from_post.ipynb +++ b/LinkedIn/LinkedIn_Get_post_stats.ipynb @@ -26,7 +26,7 @@ "tags": [] }, "source": [ - "# LinkedIn - Get stats from post\n", + "# LinkedIn - Get post stats\n", "

Give Feedback | Bug report" ] }, @@ -60,7 +60,7 @@ "tags": [] }, "source": [ - "**Last update:** 2023-05-29 (Created: 2021-06-17)" + "**Last update:** 2023-11-13 (Created: 2021-06-17)" ] }, { @@ -73,7 +73,7 @@ ] }, "source": [ - "**Description:** This notebook provides a way to track and analyze the performance of posts on LinkedIn." + "**Description:** This notebook retrieves your stats from a LinkedIn post." ] }, { @@ -107,7 +107,7 @@ }, { "cell_type": "markdown", - "id": "import_cell", + "id": "04260ded-c546-4e18-b4c3-3112e8dcce0e", "metadata": { "papermill": {}, "tags": [] @@ -119,64 +119,48 @@ { "cell_type": "code", "execution_count": null, - "id": "confirmed-education", + "id": "eb306530-ca6a-40f7-b070-98113ac07ce3", "metadata": { "papermill": {}, "tags": [] }, "outputs": [], "source": [ - "from naas_drivers import linkedin" + "from naas_drivers import linkedin\n", + "import naas" ] }, { "cell_type": "markdown", - "id": "hairy-breathing", + "id": "fcc84bab-e058-4fbb-9a8f-9728742b6c8d", "metadata": { "papermill": {}, "tags": [] }, "source": [ - "### Get your cookies\n", - "How to get your cookies ?" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "amended-optics", - "metadata": { - "papermill": {}, - "tags": [] - }, - "outputs": [], - "source": [ - "LI_AT = \"YOUR_COOKIE_LI_AT\" # EXAMPLE AQFAzQN_PLPR4wAAAXc-FCKmgiMit5FLdY1af3-2\n", - "JSESSIONID = \"YOUR_COOKIE_JSESSIONID\" # EXAMPLE ajax:8379907400220387585" - ] - }, - { - "cell_type": "markdown", - "id": "upper-allergy", - "metadata": { - "papermill": {}, - "tags": [] - }, - "source": [ - "### Enter post URL" + "### Setup variables\n", + "**Mandatory**\n", + "\n", + "[Learn how to get your cookies on LinkedIn](https://www.notion.so/LinkedIn-driver-Get-your-cookies-d20a8e7e508e42af8a5b52e33f3dba75)\n", + "- `li_at`: Cookie used to authenticate Members and API clients.\n", + "- `JSESSIONID`: Cookie used for Cross Site Request Forgery (CSRF) protection and URL signature validation.\n", + "- `linkedin_url`: LinkedIn post URL" ] }, { "cell_type": "code", "execution_count": null, - "id": "noted-observer", + "id": "c8bfdd25-bdf3-4e5a-a016-8a3c63a3764d", "metadata": { "papermill": {}, "tags": [] }, "outputs": [], "source": [ - "POST_URL = \"POST_URL\"" + "# Mandatory\n", + "li_at = naas.secret.get(\"LINKEDIN_LI_AT\") or \"YOUR_LINKEDIN_LI_AT\" #example: AQFAzQN_PLPR4wAAAXc-FCKmgiMit5FLdY1af3-2\n", + "JSESSIONID = naas.secret.get(\"LINKEDIN_JSESSIONID\") or \"YOUR_LINKEDIN_JSESSIONID\" #example: ajax:8379907400220387585\n", + "linkedin_url = \"\"" ] }, { @@ -198,7 +182,7 @@ "tags": [] }, "source": [ - "### Get stats from post" + "### Get post stats" ] }, { @@ -211,7 +195,8 @@ }, "outputs": [], "source": [ - "df = linkedin.connect(LI_AT, JSESSIONID).post.get_stats(POST_URL)" + "df = linkedin.connect(li_at, JSESSIONID).post.get_stats(linkedin_url)\n", + "df" ] }, { @@ -248,6 +233,14 @@ "source": [ "df" ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9fe1fdd5-6937-441e-99f1-b5c7e2fdc7c8", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -288,4 +281,4 @@ }, "nbformat": 4, "nbformat_minor": 5 -} \ No newline at end of file +} From e4e5a90a39e8d329296a9d667b106993c4f8fae5 Mon Sep 17 00:00:00 2001 From: Florent Ravenel Date: Mon, 13 Nov 2023 09:24:58 +0100 Subject: [PATCH 2/4] feat: template refactoring --- .../LinkedIn_Generate_leads_from_posts.ipynb | 4 ++-- ...LinkedIn_Get_post_comments_profiles.ipynb} | 16 +++++++-------- ...=> LinkedIn_Get_post_likes_profiles.ipynb} | 20 +++++++++---------- 3 files changed, 18 insertions(+), 22 deletions(-) rename LinkedIn/{LinkedIn_Get_comments_from_post.ipynb => LinkedIn_Get_post_comments_profiles.ipynb} (94%) rename LinkedIn/{LinkedIn_Get_likes_from_post.ipynb => LinkedIn_Get_post_likes_profiles.ipynb} (91%) diff --git a/LinkedIn/LinkedIn_Generate_leads_from_posts.ipynb b/LinkedIn/LinkedIn_Generate_leads_from_posts.ipynb index 46791261eb..56a25c2b42 100644 --- a/LinkedIn/LinkedIn_Generate_leads_from_posts.ipynb +++ b/LinkedIn/LinkedIn_Generate_leads_from_posts.ipynb @@ -60,7 +60,7 @@ "tags": [] }, "source": [ - "**Last update:** 2023-05-29 (Created: 2022-01-09)" + "**Last update:** 2022-01-09 (Created: 2022-01-09)" ] }, { @@ -808,4 +808,4 @@ }, "nbformat": 4, "nbformat_minor": 5 -} \ No newline at end of file +} diff --git a/LinkedIn/LinkedIn_Get_comments_from_post.ipynb b/LinkedIn/LinkedIn_Get_post_comments_profiles.ipynb similarity index 94% rename from LinkedIn/LinkedIn_Get_comments_from_post.ipynb rename to LinkedIn/LinkedIn_Get_post_comments_profiles.ipynb index a5b5d599f0..53bf7bbc86 100644 --- a/LinkedIn/LinkedIn_Get_comments_from_post.ipynb +++ b/LinkedIn/LinkedIn_Get_post_comments_profiles.ipynb @@ -26,7 +26,7 @@ "tags": [] }, "source": [ - "# LinkedIn - Get comments from post\n", + "# LinkedIn - Get post comments profiles\n", "

Give Feedback | Bug report" ] }, @@ -60,7 +60,7 @@ "tags": [] }, "source": [ - "**Last update:** 2023-08-26 (Created: 2021-06-17)" + "**Last update:** 2023-11-13 (Created: 2021-06-17)" ] }, { @@ -73,9 +73,7 @@ ] }, "source": [ - "**Description:** \"This notebook is designed to extract comments from a specific LinkedIn post and organize the data into a structured format. It generates a DataFrame with various details about each comment and the user who posted it.\n", - "\n", - "The DataFrame includes the following columns:\n", + "**Description:** This notebook is designed to extract comments and information about the profiles of people who have commented a specific post on LinkedIn. The data returned is structured in a DataFrame that includes the following columns:\n", "\n", "- `PROFILE_ID`: The unique identifier associated with the LinkedIn profile of the user who posted the comment.\n", "- `PROFILE_URL`: The URL leading to the LinkedIn profile of the user who posted the comment.\n", @@ -165,7 +163,7 @@ "[Learn how to get your cookies on LinkedIn](https://www.notion.so/LinkedIn-driver-Get-your-cookies-d20a8e7e508e42af8a5b52e33f3dba75)\n", "- `li_at`: Cookie used to authenticate Members and API clients.\n", "- `JSESSIONID`: Cookie used for Cross Site Request Forgery (CSRF) protection and URL signature validation.\n", - "- `post_url`: This variable represents the LinkedIn profile URL." + "- `linkedin_url`: This variable represents the LinkedIn post URL." ] }, { @@ -180,7 +178,7 @@ "source": [ "li_at = naas.secret.get(\"LINKEDIN_LI_AT\") or \"YOUR_LINKEDIN_LI_AT\" #example: AQFAzQN_PLPR4wAAAXc-FCKmgiMit5FLdY1af3-2\n", "JSESSIONID = naas.secret.get(\"LINKEDIN_JSESSIONID\") or \"YOUR_LINKEDIN_JSESSIONID\" #example: ajax:8379907400220387585\n", - "post_url = \"\" " + "linkedin_url = \"\" " ] }, { @@ -222,7 +220,7 @@ }, "outputs": [], "source": [ - "df = linkedin.connect(li_at, JSESSIONID).post.get_comments(post_url)\n", + "df = linkedin.connect(li_at, JSESSIONID).post.get_comments(linkedin_url)\n", "print(\"Comments:\", len(df))\n", "df.head(1)" ] @@ -301,4 +299,4 @@ }, "nbformat": 4, "nbformat_minor": 5 -} \ No newline at end of file +} diff --git a/LinkedIn/LinkedIn_Get_likes_from_post.ipynb b/LinkedIn/LinkedIn_Get_post_likes_profiles.ipynb similarity index 91% rename from LinkedIn/LinkedIn_Get_likes_from_post.ipynb rename to LinkedIn/LinkedIn_Get_post_likes_profiles.ipynb index e7719dccaa..ec6249d1ea 100644 --- a/LinkedIn/LinkedIn_Get_likes_from_post.ipynb +++ b/LinkedIn/LinkedIn_Get_post_likes_profiles.ipynb @@ -26,7 +26,7 @@ "tags": [] }, "source": [ - "# LinkedIn - Get likes from post\n", + "# LinkedIn - Get post likes profiles\n", "

Give Feedback | Bug report" ] }, @@ -60,7 +60,7 @@ "tags": [] }, "source": [ - "**Last update:** 2023-08-26 (Created: 2021-06-17)" + "**Last update:** 2023-11-13 (Created: 2021-06-17)" ] }, { @@ -73,7 +73,7 @@ ] }, "source": [ - "**Description:** \"This notebook is engineered to compile a list of profiles that have liked a specific LinkedIn post, and it organizes the data into a structured and easily digestible format. It creates a DataFrame that encompasses the following columns:\n", + "**Description:** This notebook retrieves information about the profiles of people who have liked a specific post on LinkedIn. This feature provides insights into the individuals who have engaged with a post, allowing users to view their profiles and potentially connect with them or engage in further conversations. The data is structured in a DataFrame with the following columns:\n", "\n", "- `PROFILE_ID`: The unique identifier for each LinkedIn profile.\n", "- `PROFILE_URL`: The URL of the individual's LinkedIn profile.\n", @@ -87,9 +87,7 @@ "- `PROFILE_TYPE`: The type of LinkedIn profile (e.g., individual, company).\n", "- `REACTION_TYPE`: The type of reaction (like, love, insightful, etc.) the user has given to the post.\n", "- `POST_URL`: The URL of the LinkedIn post that received the reaction.\n", - "- `DATE_EXTRACT`: The timestamp of when the reaction data was extracted.\n", - "\n", - "This notebook serves as a valuable tool for social media analysis, providing insights into user engagement on LinkedIn posts.\"" + "- `DATE_EXTRACT`: The timestamp of when the reaction data was extracted." ] }, { @@ -158,7 +156,7 @@ "[Learn how to get your cookies on LinkedIn](https://www.notion.so/LinkedIn-driver-Get-your-cookies-d20a8e7e508e42af8a5b52e33f3dba75)\n", "- `li_at`: Cookie used to authenticate Members and API clients.\n", "- `JSESSIONID`: Cookie used for Cross Site Request Forgery (CSRF) protection and URL signature validation.\n", - "- `post_url`: This variable represents the LinkedIn profile URL." + "- `linkedin_url`: This variable represents the LinkedIn post URL." ] }, { @@ -173,7 +171,7 @@ "source": [ "li_at = naas.secret.get(\"LINKEDIN_LI_AT\") or \"YOUR_LINKEDIN_LI_AT\" #example: AQFAzQN_PLPR4wAAAXc-FCKmgiMit5FLdY1af3-2\n", "JSESSIONID = naas.secret.get(\"LINKEDIN_JSESSIONID\") or \"YOUR_LINKEDIN_JSESSIONID\" #example: ajax:8379907400220387585\n", - "post_url = \"\" " + "linkedin_url = \"\" " ] }, { @@ -202,7 +200,7 @@ "tags": [] }, "source": [ - "### Get likes from post URL" + "### Get post likes" ] }, { @@ -215,7 +213,7 @@ }, "outputs": [], "source": [ - "df = linkedin.connect(li_at, JSESSIONID).post.get_likes(post_url)\n", + "df = linkedin.connect(li_at, JSESSIONID).post.get_likes(linkedin_url)\n", "print(\"Likes:\", len(df))\n", "df.head(1)" ] @@ -294,4 +292,4 @@ }, "nbformat": 4, "nbformat_minor": 5 -} \ No newline at end of file +} From 0fe19332b79b25c8eb2bc02aa0898d4e873fe8dc Mon Sep 17 00:00:00 2001 From: FlorentLvr <48032461+FlorentLvr@users.noreply.github.com> Date: Mon, 13 Nov 2023 09:41:43 +0100 Subject: [PATCH 3/4] fix: Delete .github/assets/logos/Google Analytics.png --- .github/assets/logos/Google Analytics.png | Bin 15236 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .github/assets/logos/Google Analytics.png diff --git a/.github/assets/logos/Google Analytics.png b/.github/assets/logos/Google Analytics.png deleted file mode 100644 index 8608ee49a2dd72a050fc8f9ee4d6fba30da19db2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15236 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 From 61682cc852dee40ae5f52b57ac4ce65dd3150a67 Mon Sep 17 00:00:00 2001 From: FlorentLvr <48032461+FlorentLvr@users.noreply.github.com> Date: Mon, 13 Nov 2023 09:42:22 +0100 Subject: [PATCH 4/4] feat: add google analytics logo --- .github/assets/logos/Google Analytics.png | Bin 0 -> 11743 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .github/assets/logos/Google Analytics.png diff --git a/.github/assets/logos/Google Analytics.png b/.github/assets/logos/Google Analytics.png new file mode 100644 index 0000000000000000000000000000000000000000..64ca27a397727294b9679f5b41d3b73972ebc6d0 GIT binary patch literal 11743 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 literal 0 HcmV?d00001