<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Praveen Kumar</title>
    <description>The latest articles on Forem by Praveen Kumar (@abipravi).</description>
    <link>https://forem.com/abipravi</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F748627%2F2e5a9932-f9cc-47b7-ae9d-e00e6d6befe8.jpg</url>
      <title>Forem: Praveen Kumar</title>
      <link>https://forem.com/abipravi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/abipravi"/>
    <language>en</language>
    <item>
      <title>Handling API requests in react js</title>
      <dc:creator>Praveen Kumar</dc:creator>
      <pubDate>Sat, 19 Feb 2022 07:03:28 +0000</pubDate>
      <link>https://forem.com/abipravi/handling-api-requests-in-react-js-4dhn</link>
      <guid>https://forem.com/abipravi/handling-api-requests-in-react-js-4dhn</guid>
      <description>&lt;ol&gt;
&lt;li&gt;Setting Up react app
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="nx"&gt;npx&lt;/span&gt; &lt;span class="nx"&gt;create&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;react&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;app&lt;/span&gt; &lt;span class="nx"&gt;apihandling&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Install &lt;code&gt;axios&lt;/code&gt; module
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install axios
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;3.In app.js file you need to import the axios module&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;axios&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;axios&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Call the API and set it into the state&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Import the &lt;code&gt;useState&lt;/code&gt; and &lt;code&gt;useEffect&lt;/code&gt; module from react&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;react&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;creating state to store API data&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;ApiData&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setApiData&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;([])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Creating an async function for get an data from an API&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;getData&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;axios&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://jsonplaceholder.typicode.com/todos&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;setApiData&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Adding &lt;code&gt;getData&lt;/code&gt; function into &lt;em&gt;useEffect&lt;/em&gt; function&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="nf"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nf"&gt;getData&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;[])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;In the return statement you can going to map through the value of the state &lt;code&gt;Api Data&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="nx"&gt;ApiData&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;)&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the above code we are mapping through each value of the ApiData &lt;code&gt;state&lt;/code&gt; and returning only the &lt;code&gt;title&lt;/code&gt; from it in a order.&lt;/p&gt;

&lt;p&gt;That's it we have successfully create an react app that can get api from other sources and display.&lt;/p&gt;

&lt;p&gt;Full Code Here:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;react&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;axios&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="nx"&gt;axios&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;App&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;ApiData&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setApiData&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;([]);&lt;/span&gt;

    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;getData&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;axios&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="na"&gt;https&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;//jsonplaceholder.typicode.com/todos)&lt;/span&gt;
        &lt;span class="nf"&gt;setApiData&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="nf"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nf"&gt;getData&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;[]);&lt;/span&gt;

    &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
          &lt;span class="nx"&gt;ApiData&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Thanks for Reading&lt;br&gt;
Follow me on twitter &lt;a href="https://twitter.com/abipravi1"&gt;@abipravi1&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Z0GIDTga--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ws5t28e3ehbkxivviwjt.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Z0GIDTga--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ws5t28e3ehbkxivviwjt.gif" alt="Image description" width="498" height="263"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>React Js google auth</title>
      <dc:creator>Praveen Kumar</dc:creator>
      <pubDate>Wed, 16 Feb 2022 11:26:23 +0000</pubDate>
      <link>https://forem.com/abipravi/react-js-google-auth-50de</link>
      <guid>https://forem.com/abipravi/react-js-google-auth-50de</guid>
      <description>&lt;p&gt;Install react-google-login module&lt;br&gt;
&lt;code&gt;npm install react-google-login&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;step 2 :&lt;br&gt;
Open Google developers console&lt;/p&gt;

&lt;p&gt;Create new project&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8EkmKUK2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8d5hg8fx8glbbldnhsxq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8EkmKUK2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8d5hg8fx8glbbldnhsxq.png" alt="Image description" width="724" height="575"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Enter The Project Name&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wrCKdEN8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z2udohwalpy3za68og5v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wrCKdEN8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z2udohwalpy3za68og5v.png" alt="Image description" width="579" height="282"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Select you project -&amp;gt; Dashboard&lt;/p&gt;

&lt;p&gt;select &lt;code&gt;OAuth&lt;/code&gt; in the left side menu&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GQzJjX6f--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kxjrfzhsjp6qed6irlx0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GQzJjX6f--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kxjrfzhsjp6qed6irlx0.png" alt="Image description" width="238" height="278"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Creating OAuth Credentials:&lt;br&gt;
1.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0fG0w-ge--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8f5lkeew5fml3v5rp78t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0fG0w-ge--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8f5lkeew5fml3v5rp78t.png" alt="Image description" width="582" height="362"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Enter Project name and select you gmail id&lt;br&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eWmE0wAg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o3zx9id4v4dwmf4qhk52.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eWmE0wAg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o3zx9id4v4dwmf4qhk52.png" alt="Image description" width="594" height="371"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add your add domain for react add (&lt;a href="https://localhost:3000"&gt;https://localhost:3000&lt;/a&gt;)&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0ILoaQah--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a4uut02h9jzubp1iu0d5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0ILoaQah--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a4uut02h9jzubp1iu0d5.png" alt="Image description" width="542" height="240"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now You can see the credentials in the dashboard &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5ZFO8Xvn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f8qp34y1kapbl99dykoo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5ZFO8Xvn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f8qp34y1kapbl99dykoo.png" alt="Image description" width="422" height="176"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Setting Up in react&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;GoogleLogin
         clientId={props.authid} // provide your clint id here
         onSuccess={responseGoogle}
         render={(renderProps) =&amp;gt; (
           &amp;lt;button
             onClick={renderProps.onClick}
             disabled={renderProps.disabled}
             class="bi bi-google btn btn-dark"
           &amp;gt;&amp;lt;/button&amp;gt;
          )}
          theme="dark"
          icon="false"
          onFailure={responseGoogle}
 /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const responseGoogle = (e) =&amp;gt; {
   console.log(e.profileObj) //Data Of the User logged in
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;that's it you have successfully created an clint side google auth now you can use the data to store it into your backend and use it like normal &lt;code&gt;JWT&lt;/code&gt; authentication.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LmRA2KqJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pcfuxz6cvo0kmrwq4cko.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LmRA2KqJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pcfuxz6cvo0kmrwq4cko.gif" alt="Image description" width="498" height="263"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>react</category>
      <category>python</category>
    </item>
    <item>
      <title>Convert video to gif in python</title>
      <dc:creator>Praveen Kumar</dc:creator>
      <pubDate>Thu, 30 Dec 2021 14:44:36 +0000</pubDate>
      <link>https://forem.com/abipravi/convert-video-to-gif-in-python-464n</link>
      <guid>https://forem.com/abipravi/convert-video-to-gif-in-python-464n</guid>
      <description>&lt;h2&gt;
  
  
  How to convert &lt;code&gt;video file&lt;/code&gt; to &lt;code&gt;gif&lt;/code&gt; format using &lt;strong&gt;Python&lt;/strong&gt; programming language
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;First install module
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install MoviePy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Now Code the following
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;moviepy.editor&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;
&lt;span class="n"&gt;clip&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;VideoFileClip&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;./video1.mp4&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="n"&gt;clip&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;write_gif&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;output.gif&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also trim the video from one part and then convert them into gif&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;moviepy.editor&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; 
&lt;span class="n"&gt;clip&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;VideoFileClip&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;./video1.mp4&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;subclip&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="p"&gt;),(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="p"&gt;)).&lt;/span&gt;&lt;span class="nf"&gt;resize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ACCORDING&lt;/span&gt; &lt;span class="n"&gt;TO&lt;/span&gt; &lt;span class="n"&gt;THE&lt;/span&gt; &lt;span class="n"&gt;USER&lt;/span&gt; &lt;span class="n"&gt;WISH&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; 
&lt;span class="n"&gt;clip&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;write_gif&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;output.gif&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Thanks for Reading&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1nefpdykghwyfpuve2f2.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1nefpdykghwyfpuve2f2.gif" alt="Image 1"&gt;&lt;/a&gt; &lt;br&gt;
If you like this article please like and leave us an comment&lt;/p&gt;

</description>
      <category>python</category>
      <category>abipravi</category>
    </item>
    <item>
      <title>Neovim ultimate Web Dev Setup with vim plug on windows</title>
      <dc:creator>Praveen Kumar</dc:creator>
      <pubDate>Tue, 14 Dec 2021 03:49:59 +0000</pubDate>
      <link>https://forem.com/abipravi/neovim-ultimate-web-dev-setup-with-vim-plug-on-windows-ef6</link>
      <guid>https://forem.com/abipravi/neovim-ultimate-web-dev-setup-with-vim-plug-on-windows-ef6</guid>
      <description>&lt;p&gt;How to make an ultimate setup in &lt;strong&gt;&lt;em&gt;neovim&lt;/em&gt;&lt;/strong&gt; with &lt;strong&gt;&lt;em&gt;dir tree&lt;/em&gt;&lt;/strong&gt; and &lt;strong&gt;code autocomplete&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F498%2F1%2Ald_hQKE7lHjMpf21gyKPKw.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F498%2F1%2Ald_hQKE7lHjMpf21gyKPKw.gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;first install &lt;code&gt;nvim&lt;/code&gt; and go the &lt;code&gt;nvim&lt;/code&gt; folder&lt;/p&gt;

&lt;p&gt;for windows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;c:\users\appdata\local\nvim
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If there is no &lt;strong&gt;nvim&lt;/strong&gt; folder then create one with name &lt;strong&gt;nvim&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now let us code the plugin and setup the environment&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgeww24rlh0h2hf8buy92.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgeww24rlh0h2hf8buy92.png" alt="Image description"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Now create an file name &lt;strong&gt;init.vim&lt;/strong&gt; inside the &lt;strong&gt;nvim&lt;/strong&gt; folder&lt;/p&gt;

&lt;p&gt;and also create a folder named autoload and create an new file named &lt;strong&gt;plug.vim&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;and add the following code into the &lt;strong&gt;plug.vim&lt;/strong&gt; file&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gist.github.com/pravee42/f12d4425d781eb61d7713f66da2bb6b0" rel="noopener noreferrer"&gt;https://gist.github.com/pravee42/f12d4425d781eb61d7713f66da2bb6b0&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;after added the code into the &lt;strong&gt;plug.vim&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;move out of the directory and go back to the nvim folder&lt;/p&gt;

&lt;p&gt;inside the nvim folder open the file named &lt;strong&gt;init.vim&lt;/strong&gt; and paste the following code&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="k"&gt;number&lt;/span&gt;
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;relativenumber&lt;/span&gt;
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;clipboard&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;unnamed
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;autoindent&lt;/span&gt;
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;tabstop&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m"&gt;4&lt;/span&gt;
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;shiftwidth&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m"&gt;4&lt;/span&gt;
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;smarttab&lt;/span&gt;
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;softtabstop&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m"&gt;4&lt;/span&gt;
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;mouse&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="k"&gt;a&lt;/span&gt;
&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;filetype&lt;/span&gt; &lt;span class="nb"&gt;indent&lt;/span&gt; &lt;span class="k"&gt;on&lt;/span&gt;
&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;filetype&lt;/span&gt; plugin &lt;span class="k"&gt;on&lt;/span&gt;
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;ruler&lt;/span&gt;

&lt;span class="k"&gt;call&lt;/span&gt; plug#begin&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'C:/Users/ABIPRAVI/AppData/Local/nvim/plugged'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c"&gt;" below are some vim plugins for demonstration purpose.&lt;/span&gt;
&lt;span class="c"&gt;" add the plugin you want to use here.&lt;/span&gt;
Plug &lt;span class="s1"&gt;'Chiel92/vim-autoformat'&lt;/span&gt;
Plug &lt;span class="s1"&gt;'davidhalter/jedi-vim'&lt;/span&gt;
Plug &lt;span class="s1"&gt;'raimon49/requirements.txt.vim'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;'for'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'requirements'&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
Plug &lt;span class="s1"&gt;'hail2u/vim-css3-syntax'&lt;/span&gt;
Plug &lt;span class="s1"&gt;'gko/vim-coloresque'&lt;/span&gt;
Plug &lt;span class="s1"&gt;'vim-scripts/pylint.vim'&lt;/span&gt;
Plug &lt;span class="s1"&gt;'tpope/vim-haml'&lt;/span&gt;
Plug &lt;span class="s1"&gt;'mattn/emmet-vim'&lt;/span&gt;
Plug &lt;span class="s1"&gt;'dracula/vim'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="s1"&gt;'as'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'dracula'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
Plug &lt;span class="s1"&gt;'joshdick/onedark.vim'&lt;/span&gt;
Plug &lt;span class="s1"&gt;'iCyMind/NeoSolarized'&lt;/span&gt;
&lt;span class="c"&gt;" Use release branch (recommend)&lt;/span&gt;
Plug &lt;span class="s1"&gt;'neoclide/coc.nvim'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;'branch'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'release'&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
Plug &lt;span class="s1"&gt;'neoclide/coc.nvim'&lt;/span&gt;
Plug &lt;span class="s1"&gt;'junegunn/vim-easy-align'&lt;/span&gt;
Plug &lt;span class="s1"&gt;'https://github.com/junegunn/vim-github-dashboard.git'&lt;/span&gt;
Plug &lt;span class="s1"&gt;'scrooloose/nerdtree'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="s1"&gt;'on'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;  &lt;span class="s1"&gt;'NERDTreeToggle'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
Plug &lt;span class="s1"&gt;'tpope/vim-fireplace'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="s1"&gt;'for'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'clojure'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
Plug &lt;span class="s1"&gt;'rdnetto/YCM-Generator'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="s1"&gt;'branch'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'stable'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
Plug &lt;span class="s1"&gt;'fatih/vim-go'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="s1"&gt;'tag'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'*'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
Plug &lt;span class="s1"&gt;'nsf/gocode'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="s1"&gt;'tag'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'v.20150303'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'rtp'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'vim'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
Plug &lt;span class="s1"&gt;'junegunn/fzf'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="s1"&gt;'dir'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'~/.fzf'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'do'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'./install --all'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
Plug &lt;span class="s1"&gt;'vim-airline/vim-airline'&lt;/span&gt;
Plug &lt;span class="s1"&gt;'vim-airline/vim-airline-themes'&lt;/span&gt;
Plug &lt;span class="s1"&gt;'github/copilot.vim'&lt;/span&gt;
Plug &lt;span class="s1"&gt;'https://github.com/rafi/awesome-vim-colorschemes'&lt;/span&gt; 
Plug &lt;span class="s1"&gt;'https://github.com/ap/vim-css-color'&lt;/span&gt;
Plug &lt;span class="s1"&gt;'https://github.com/ryanoasis/vim-devicons'&lt;/span&gt;
Plug &lt;span class="s1"&gt;'pangloss/vim-javascript'&lt;/span&gt;
Plug &lt;span class="s1"&gt;'sbdchd/neoformat'&lt;/span&gt;
Plug &lt;span class="s1"&gt;'leafgarland/typescript-vim'&lt;/span&gt;
Plug &lt;span class="s1"&gt;'peitalin/vim-jsx-typescript'&lt;/span&gt;
Plug &lt;span class="s1"&gt;'styled-components/vim-styled-components'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="s1"&gt;'branch'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'main'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
Plug &lt;span class="s1"&gt;'tpope/vim-commentary'&lt;/span&gt;
Plug &lt;span class="s1"&gt;'jparise/vim-graphql'&lt;/span&gt;
Plug &lt;span class="s1"&gt;'kien/ctrlp.vim'&lt;/span&gt;
Plug &lt;span class="s1"&gt;'jiangmiao/auto-pairs'&lt;/span&gt;
Plug &lt;span class="s1"&gt;'ryanoasis/vim-devicons'&lt;/span&gt;
&lt;span class="k"&gt;call&lt;/span&gt; plug#end&lt;span class="p"&gt;()&lt;/span&gt;


&lt;span class="c"&gt;" Use &amp;lt;C-l&amp;gt; for trigger snippet expand.&lt;/span&gt;
imap &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;C&lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="k"&gt;l&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;Plug&lt;span class="p"&gt;&amp;gt;(&lt;/span&gt;coc&lt;span class="p"&gt;-&lt;/span&gt;snippets&lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="nb"&gt;expand&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c"&gt;"&lt;/span&gt;
&lt;span class="c"&gt;" " Use &amp;lt;C-j&amp;gt; for select text for visual placeholder of snippet.&lt;/span&gt;
vmap &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;C&lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="k"&gt;j&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;Plug&lt;span class="p"&gt;&amp;gt;(&lt;/span&gt;coc&lt;span class="p"&gt;-&lt;/span&gt;snippets&lt;span class="p"&gt;-&lt;/span&gt;select&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c"&gt;"&lt;/span&gt;
&lt;span class="c"&gt;" " Use &amp;lt;C-j&amp;gt; for jump to next placeholder, it's default of coc.nvim&lt;/span&gt;
&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;g:coc_snippet_next&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'&amp;lt;c-j&amp;gt;'&lt;/span&gt;
&lt;span class="c"&gt;"&lt;/span&gt;
&lt;span class="c"&gt;" " Use &amp;lt;C-k&amp;gt; for jump to previous placeholder, it's default of coc.nvim&lt;/span&gt;
&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;g:coc_snippet_prev&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'&amp;lt;c-k&amp;gt;'&lt;/span&gt;
&lt;span class="c"&gt;"&lt;/span&gt;
&lt;span class="c"&gt;" " Use &amp;lt;C-j&amp;gt; for both expand and jump (make expand higher priority.)&lt;/span&gt;
imap &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;C&lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="k"&gt;j&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;Plug&lt;span class="p"&gt;&amp;gt;(&lt;/span&gt;coc&lt;span class="p"&gt;-&lt;/span&gt;snippets&lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="nb"&gt;expand&lt;/span&gt;&lt;span class="p"&gt;-&lt;/span&gt;jump&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c"&gt;"&lt;/span&gt;
&lt;span class="c"&gt;" " Use &amp;lt;leader&amp;gt;x for convert visual selected code to snippet&lt;/span&gt;
xmap &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;leader&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="k"&gt;x&lt;/span&gt;  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;Plug&lt;span class="p"&gt;&amp;gt;(&lt;/span&gt;coc&lt;span class="p"&gt;-&lt;/span&gt;convert&lt;span class="p"&gt;-&lt;/span&gt;snippet&lt;span class="p"&gt;)&lt;/span&gt;
vmap &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;leader&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="k"&gt;f&lt;/span&gt;  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;Plug&lt;span class="p"&gt;&amp;gt;(&lt;/span&gt;coc&lt;span class="p"&gt;-&lt;/span&gt;format&lt;span class="p"&gt;-&lt;/span&gt;selected&lt;span class="p"&gt;)&lt;/span&gt;
nmap &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;leader&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="k"&gt;f&lt;/span&gt;  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;Plug&lt;span class="p"&gt;&amp;gt;(&lt;/span&gt;coc&lt;span class="p"&gt;-&lt;/span&gt;format&lt;span class="p"&gt;-&lt;/span&gt;selected&lt;span class="p"&gt;)&lt;/span&gt;


command&lt;span class="p"&gt;!&lt;/span&gt; &lt;span class="p"&gt;-&lt;/span&gt;nargs&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt; Prettier &lt;span class="p"&gt;:&lt;/span&gt;CocCommand prettier&lt;span class="p"&gt;.&lt;/span&gt;formatFile

&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;g:airline&lt;/span&gt;#extensions#&lt;span class="nb"&gt;tabline&lt;/span&gt;#enabled &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;
&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;g:airline&lt;/span&gt;#extensions#&lt;span class="nb"&gt;tabline&lt;/span&gt;#left_sep &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;' '&lt;/span&gt;
&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;g:airline&lt;/span&gt;#extensions#&lt;span class="nb"&gt;tabline&lt;/span&gt;#left_alt_sep &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'|'&lt;/span&gt;

nnoremap &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;C&lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="k"&gt;f&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;NERDTreeFocus&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;CR&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
nnoremap &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;C&lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="k"&gt;k&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;Prettier&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;CR&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
nnoremap &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;C&lt;span class="p"&gt;-&lt;/span&gt;I&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;PlugInstall&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;CR&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
nnoremap &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;C&lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="k"&gt;n&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;NERDTree&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;CR&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
nnoremap &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;C&lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="k"&gt;t&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;NERDTreeToggle&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;CR&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
nnoremap &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;C&lt;span class="p"&gt;-&lt;/span&gt;s&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;w&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;CR&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;colorscheme&lt;/span&gt; dracula
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Yes we have completed the 90 percentage of the code and there is only few thing to do with the &lt;strong&gt;init.vim&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmo634oacoaj515rsdmmx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmo634oacoaj515rsdmmx.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;after that go to the init.vim&lt;/p&gt;

&lt;p&gt;go the command mode and type &lt;strong&gt;:PlugInstall&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;now you can see the plugins are installing&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8oezupdd4zquwjzlkesu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8oezupdd4zquwjzlkesu.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Yes we have installed &lt;strong&gt;close&lt;/strong&gt; and &lt;strong&gt;open vim&lt;/strong&gt; again now you see the some of the power have been updated to &lt;strong&gt;neovim&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fav1c9k2jffkppse0j6cb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fav1c9k2jffkppse0j6cb.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ok but we havent still completed&lt;/p&gt;

&lt;p&gt;now to the &lt;strong&gt;plugged folder&lt;/strong&gt; inside the &lt;strong&gt;nvim&lt;/strong&gt; folder there you can see that there is an &lt;strong&gt;coc.nim&lt;/strong&gt; folder&lt;/p&gt;

&lt;p&gt;there you can just type&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;yarn install  
npm i  
npm run build  
yarn build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;&lt;em&gt;(NOTE: before this setup make sure that node js is installed on your system then only it will work)&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;after installing again close the &lt;strong&gt;nvim&lt;/strong&gt; and open it now you can see that the auto completion is working fine&lt;/p&gt;

&lt;p&gt;and also we have added some of the shortcuts&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ctrl + s -&amp;gt;&lt;/strong&gt; save the file&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ctrl + k -&amp;gt;&lt;/strong&gt; Prettier auto code formatter&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ctrl + t -&amp;gt;&lt;/strong&gt; directory tree on the left side&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ctrl + f -&amp;gt;&lt;/strong&gt; To focus on the &lt;strong&gt;nred&lt;/strong&gt; &lt;strong&gt;tree&lt;/strong&gt; while working in the file&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Ffreeze%2Fmax%2F30%2F1%2AyesaIUcWPg-UDnm4wmM52g.gif%3Fq%3D20" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Ffreeze%2Fmax%2F30%2F1%2AyesaIUcWPg-UDnm4wmM52g.gif%3Fq%3D20"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finally we have completed the neovim setup&lt;/p&gt;

&lt;p&gt;We have made it&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F75saenyzoy6bh39ohuxz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F75saenyzoy6bh39ohuxz.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks&lt;/p&gt;

&lt;p&gt;If You like this post make sure you follow us on&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.instagram.com/praveenkumar_abipravi/" rel="noopener noreferrer"&gt;Instagram&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/ABIPRAVI1" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/in/praveen-kumar-9b09441b7/" rel="noopener noreferrer"&gt;Linked In&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://abipraviii.blogspot.com/" rel="noopener noreferrer"&gt;BlogPost&lt;/a&gt;&lt;/p&gt;

</description>
      <category>vim</category>
      <category>webdev</category>
      <category>python</category>
      <category>windows</category>
    </item>
    <item>
      <title>Make images load fast by using Webp image in website</title>
      <dc:creator>Praveen Kumar</dc:creator>
      <pubDate>Fri, 10 Dec 2021 10:26:48 +0000</pubDate>
      <link>https://forem.com/abipravi/make-images-load-fast-in-website-2e6k</link>
      <guid>https://forem.com/abipravi/make-images-load-fast-in-website-2e6k</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Cz2T-c_q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pjzyjzl2vwq5isnekhl8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Cz2T-c_q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pjzyjzl2vwq5isnekhl8.png" alt="Image description" width="405" height="124"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Why to use &lt;strong&gt;Webp&lt;/strong&gt; images
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Webp images is especially build for web by google to optimize the loading speed of images&lt;/li&gt;
&lt;li&gt;The image is smaller 26% by size compared to &lt;u&gt;PNG&lt;/u&gt; images&lt;/li&gt;
&lt;li&gt;WebP supports transparency at a cost of just 22% additional bytes&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---DHZemtN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rchll3yoo7w6mxt02kb0.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---DHZemtN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rchll3yoo7w6mxt02kb0.gif" alt="Image description" width="498" height="233"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Try to use WebP images in website instead of &lt;strong&gt;PNG&lt;/strong&gt; and &lt;strong&gt;JPEG&lt;/strong&gt; images&lt;/p&gt;

&lt;p&gt;Example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"image.webp"&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Thanks for reading...&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--obOiiqNO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gkwoadi6aa9ykz1nosly.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--obOiiqNO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gkwoadi6aa9ykz1nosly.gif" alt="Image description" width="150" height="116"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>image</category>
      <category>html</category>
      <category>css</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Open Source news api for developers</title>
      <dc:creator>Praveen Kumar</dc:creator>
      <pubDate>Fri, 03 Dec 2021 03:23:00 +0000</pubDate>
      <link>https://forem.com/abipravi/open-source-news-api-for-developers-4pdp</link>
      <guid>https://forem.com/abipravi/open-source-news-api-for-developers-4pdp</guid>
      <description>&lt;h2&gt;
  
  
  News Api is created using python &lt;code&gt;django rest framework&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QxohTFaB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/igt8dqtn62ksjuf3nahu.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QxohTFaB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/igt8dqtn62ksjuf3nahu.gif" alt="Image description" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Using this the developer can get the realtime news which is scraped from different websites and sources such as &lt;code&gt;google news&lt;/code&gt; and &lt;code&gt;India today&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Api Link: &lt;a href="https://newsapi-abipravi.herokuapp.com/"&gt;VISIT_API&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;github repository link: &lt;a href="https://github.com/pravee42/newsapi"&gt;View Source code&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;em&gt;Documentation&lt;/em&gt;:
&lt;/h4&gt;

&lt;p&gt;&lt;code&gt;url/news&lt;/code&gt; -&amp;gt; &lt;strong&gt;To get the top news and head lines news&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;url/tech&lt;/code&gt; -&amp;gt; &lt;strong&gt;To get the Technology news&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;url/search/&amp;lt;search_keyword&amp;gt;&lt;/code&gt; -&amp;gt; &lt;strong&gt;Search News&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;like wise there are more to get the news &lt;/p&gt;

&lt;h4&gt;
  
  
  Main feature is there is no need to register on owr website you can use the API privately
&lt;/h4&gt;

&lt;p&gt;For Documentation Visit: &lt;a href="https://dev.tonewsapi/docs"&gt;Docs&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Thanks for reading
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;If you like you post&lt;/strong&gt; Connect us on&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/pravee42"&gt;&lt;br&gt;
Github&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.instagram.com/praveenkumar_abipravi/"&gt;&lt;br&gt;
  Instagram&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/ABIPRAVI1"&gt;&lt;br&gt;
  Twiter&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/in/praveen-kumar-9b09441b7/"&gt;&lt;br&gt;
 Linked In&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://abipravi.medium.com/"&gt;&lt;br&gt;
 Medium&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

</description>
      <category>news</category>
      <category>python</category>
      <category>programming</category>
      <category>opensource</category>
    </item>
    <item>
      <title>How to create a Twitter bot in python</title>
      <dc:creator>Praveen Kumar</dc:creator>
      <pubDate>Wed, 01 Dec 2021 05:07:58 +0000</pubDate>
      <link>https://forem.com/abipravi/how-to-create-a-twitter-bot-in-python-1024</link>
      <guid>https://forem.com/abipravi/how-to-create-a-twitter-bot-in-python-1024</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hFdXagvL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6845g5yr2sf8pz0oy1oo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hFdXagvL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6845g5yr2sf8pz0oy1oo.png" alt="Image description" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this article, we will learn how to create a Twitter bot using a module called &lt;code&gt;simpletwitter&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LOycRhEl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/td0gl0jr8bm62gstsel4.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LOycRhEl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/td0gl0jr8bm62gstsel4.gif" alt="Image description" width="498" height="192"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install the simpletwitter module&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;code&gt;pip install simpletwitter&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uD23RCoI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3y9n6hywuniosof7t2ln.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uD23RCoI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3y9n6hywuniosof7t2ln.gif" alt="Image description" width="200" height="270"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;Yes we have successfully installed the module&lt;/p&gt;

&lt;p&gt;Now get into the code,&lt;/p&gt;

&lt;p&gt;&lt;code&gt;from simpletwitter import SimpleTwitter&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Create an instance for the class SimpleTwitter&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;email = "Twitter_User_Email_Address"

password = "Twitter_Password"

user_name = "Abipravi1" 
#here i have entered my twitter username but you need to enter your's in this case

no_of_tweets = 10 
#this value is necessary how many no of tweets you want to perform operation

bot = SimpleTwitter(email, password, no_of_tweets, user_name)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's all we set up all the necessary requirements, Now let us go and perform the Twitter operations…..&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gIdueDEK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/esp6nal4gh6yyxtdajpv.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gIdueDEK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/esp6nal4gh6yyxtdajpv.gif" alt="Image description" width="498" height="298"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;hashtags = ['#abipravi', #pythonmodule', '#twitter_bot']
tweetmessage = "My first tweet by simple twitter"
bot.login() 
# to login into the account
bot.like_tweet(hashtags) 
# like the tweet
bot.unlike_liked_tweets(5) 
# unlike the liked tweet
bot.tweet(tweetmessage) 
# put some tweet
bot.only_like_top_tweet(hashtags)
# this will like only the trending tweet
bot.retweet(hashtags) 
# retweet some tweets based on particular hashtags
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Finally We have have it......&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9rrvu72Q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/esthup6mgmrt25erkya7.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9rrvu72Q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/esthup6mgmrt25erkya7.gif" alt="Image description" width="498" height="280"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We have made our own Twitter bot&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Full Code:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from simpletwitter import SimpleTwitter

email = "Twitter_User_Email_Address"

password = "Twitter_Password"

user_name = "Abipravi1" 
#here i have entered my twitter username but you need to enter your's in this case

no_of_tweets = 10 
#this value is necessary how many no of tweets you want to perform operation

bot = SimpleTwitter(email, password, no_of_tweets, user_name)
#Creating Instance

hashtags = ['#abipravi', #pythonmodule', '#twitter_bot']

tweetmessage = "My first tweet by simple twitter"

bot.login() 
# to login into the account

bot.like_tweet(hashtags) 
# like the tweet

bot.unlike_liked_tweets(5) 
# unlike the liked tweet

bot.tweet(tweetmessage) 
# put some tweet

bot.only_like_top_tweet(hashtags)
# this will like only the trending tweet

bot.retweet(hashtags) 
# retweet some tweets based on particular hashtags
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;**_Thanks for reading&lt;/p&gt;

&lt;p&gt;If You like this post make sure you follow us on_**&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.instagram.com/praveenkumar_abipravi/"&gt;Instagram&lt;/a&gt;&lt;br&gt;
&lt;a href="https://twitter.com/ABIPRAVI1"&gt;Twitter&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/praveen-kumar-9b09441b7/"&gt;Linked In&lt;br&gt;
&lt;/a&gt;&lt;a href="https://medium.com/r/?url=https%3A%2F%2Fabipraviii.blogspot.com%2F"&gt;BlogPost&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
