<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Home</title><link>https://sourceforge.net/p/jgetfreeproxylist/wiki/Home/</link><description>Recent changes to Home</description><atom:link href="https://sourceforge.net/p/jgetfreeproxylist/wiki/Home/feed" rel="self"/><language>en</language><lastBuildDate>Wed, 29 Mar 2017 11:34:58 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/jgetfreeproxylist/wiki/Home/feed" rel="self" type="application/rss+xml"/><item><title>Home modified by Ilya Gulevskiy</title><link>https://sourceforge.net/p/jgetfreeproxylist/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v28
+++ v29
@@ -8,7 +8,7 @@

 - added feature to set up RegExp pattern to parse page with proxies;
 - now, it is possible to stop running process;
-- handlers for exceptions became reliabler and deeper;
+- handlers for exceptions became more reliable and deeper;
 - errors collection became more detalized;
 - development regime is avaliable now.

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ilya Gulevskiy</dc:creator><pubDate>Wed, 29 Mar 2017 11:34:58 -0000</pubDate><guid>https://sourceforge.net23b16000ae926f23d9f6f2d6845694fc0afabb58</guid></item><item><title>Home modified by Ilya Gulevskiy</title><link>https://sourceforge.net/p/jgetfreeproxylist/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v27
+++ v28
@@ -119,7 +119,8 @@
 Settings.GetProxyUrls.add(iu);
 ~~~

-Note, when you add new URL and RegExp for parse it, it hightly recommend to check with InfoUrl.test() method whether it work right or not. 
+Note, when you add new URL-page and RegExp pattern for parse it, is highly recommend on development stage to check once with InfoUrl.test() method to know whether this pattern work right or not. In the future this check is not need.
+
 Be aware, if returned ArrayList is empty, that means yours RegExp setted by setPatternString(String PatternString) is wrong and you must try other RegExp. 

 Each public class and methods in this library well-documented. See full documentation in [library archive](https://sourceforge.net/projects/jgetfreeproxylist/files/)
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ilya Gulevskiy</dc:creator><pubDate>Sun, 26 Mar 2017 13:09:57 -0000</pubDate><guid>https://sourceforge.netb6097c24e8351eee02f8ad37068a0aef37cd5aba</guid></item><item><title>Home modified by Ilya Gulevskiy</title><link>https://sourceforge.net/p/jgetfreeproxylist/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v26
+++ v27
@@ -38,17 +38,19 @@
        // Method will cal every second and give a consumer percentage of work
        public void process(int getProxyPerc, int testProxyPerc){

-             // There you can set a process bar value or other information things.
+             // There you can set a progress bar value or other information things.
               // getProxyPerc - percentage of ask urls with proxies
               // testProxyPerc - percentage of test proxies

        }

-       // Will call when all work is done. 
+       // It will called when all work is done. 
        public void done(ArrayList&amp;lt;ProxyItem&amp;gt; testedProxies, WorkErrors errors){

                // testedProxies - list of well-work proxies 
-              // errors - structure of errors. null if it was no errors.
+              // errors - structure of errors. null if it was no errors, 
+              // but it will almost never happens, because it consists by all responses 
+              // of servers when proxy was refused.

        }
    }
@@ -76,7 +78,7 @@
 }
 ~~~

-Of course, in GUI application it have to run in different thread. See testGUI source code in jGetFreeProxyList archive for more details.
+Of course, in GUI application it have to run in different thread. See [How it use in GUI application] or testGUI source code in jGetFreeProxyList archive for more details.

 # How to setting up
@@ -90,7 +92,7 @@
 Settings.TestByUrls.add(new URL("http://www.amazon.com/"));
 Settings.TestByUrls.add(new URL("http://www.facebook.com/"));

-// Set up where get proxies list. Take care: IP has to be in format ip:port. 
+// Set up where get proxies list. Take care: by default, IP has to be in format ip:port. 
 Settings.GetProxyUrls.clear();
 Settings.GetProxyUrls.add(new InfoUrl(new URL("http://samair.ru/proxy/")));
 Settings.GetProxyUrls.add(new InfoUrl(new URL("http://proxydb.net/")));
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ilya Gulevskiy</dc:creator><pubDate>Sun, 26 Mar 2017 12:15:45 -0000</pubDate><guid>https://sourceforge.net2b580146b196ff58a1433fd92360c3c623348cda</guid></item><item><title>Home modified by Ilya Gulevskiy</title><link>https://sourceforge.net/p/jgetfreeproxylist/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v25
+++ v26
@@ -3,6 +3,14 @@
 This Java library help when your app need a list of able to work proxies. Just add jGetFreeProxyList to your progect, set up settings if you want and run it. According to settings, after 5 or more seconds you get list of tested free proxies.

 For example, your app have to send a lot of HTTP queries for some hosts, but you dont want do it with one IP address to refuse yours ban by IP. You import jGetFreeProxyList into your app, run it in other thread, set up settings and set handlers. Afterwards jGetFreeProxyList receives list of free proxies from sites you set up in settings, make test for every IP and give you list of tested proxies into yours java code. Amount of threads and timeouts can be set up too. 
+
+WHATS NEW IN v.1.1:
+
+- added feature to set up RegExp pattern to parse page with proxies;
+- now, it is possible to stop running process;
+- handlers for exceptions became reliabler and deeper;
+- errors collection became more detalized;
+- development regime is avaliable now.

 # How it works
 * You set up list of HTTP-pages where publish free proxies;
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ilya Gulevskiy</dc:creator><pubDate>Sun, 26 Mar 2017 11:32:28 -0000</pubDate><guid>https://sourceforge.net09353c08b3569f0100e7fda6ee6fef3f428396ad</guid></item><item><title>Home modified by Ilya Gulevskiy</title><link>https://sourceforge.net/p/jgetfreeproxylist/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v24
+++ v25
@@ -1,8 +1,16 @@
 **jGetFreeProxyList** - library to get a list of tested free proxies to java code.

-This Java library help when your app need a list of able to work proxies. Just add jGetFreeProxyList to your progect, set up settings if you want and run it. According to settings, after 10 or 600 seconds you get list of tested free proxies.
+This Java library help when your app need a list of able to work proxies. Just add jGetFreeProxyList to your progect, set up settings if you want and run it. According to settings, after 5 or more seconds you get list of tested free proxies.

 For example, your app have to send a lot of HTTP queries for some hosts, but you dont want do it with one IP address to refuse yours ban by IP. You import jGetFreeProxyList into your app, run it in other thread, set up settings and set handlers. Afterwards jGetFreeProxyList receives list of free proxies from sites you set up in settings, make test for every IP and give you list of tested proxies into yours java code. Amount of threads and timeouts can be set up too. 
+
+# How it works
+* You set up list of HTTP-pages where publish free proxies;
+* You set up how make html-parsing of this pages;
+* jGetFreeProxyList get this pages, parse it and build list of unchecked proxies;
+* jGetFreeProxyList checks every proxy through popular sites you set up;
+* jGetFreeProxyList return in your app list of checked proxies.
+

 [How it works in library]
 [How it use in GUI application]
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ilya Gulevskiy</dc:creator><pubDate>Sat, 25 Mar 2017 19:03:00 -0000</pubDate><guid>https://sourceforge.net431fa0645e30e55bd40e848c02955dce2b5f3e4e</guid></item><item><title>Home modified by Ilya Gulevskiy</title><link>https://sourceforge.net/p/jgetfreeproxylist/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v23
+++ v24
@@ -5,6 +5,7 @@
 For example, your app have to send a lot of HTTP queries for some hosts, but you dont want do it with one IP address to refuse yours ban by IP. You import jGetFreeProxyList into your app, run it in other thread, set up settings and set handlers. Afterwards jGetFreeProxyList receives list of free proxies from sites you set up in settings, make test for every IP and give you list of tested proxies into yours java code. Amount of threads and timeouts can be set up too.

 [How it works in library]
+[How it use in GUI application]
 # Getting start
 Add jGetFreeProxyList.jar library to your Java progect and import it in code. 

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ilya Gulevskiy</dc:creator><pubDate>Sat, 25 Mar 2017 18:31:13 -0000</pubDate><guid>https://sourceforge.net29105c26d7c8e3f14ee2470a4d830099022eade7</guid></item><item><title>Home modified by Ilya Gulevskiy</title><link>https://sourceforge.net/p/jgetfreeproxylist/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v22
+++ v23
@@ -38,7 +38,7 @@
 );
 ~~~

-In second, you have to run processes (simple approach):
+In second, you have to run processes:

 ~~~
 try {
@@ -59,7 +59,7 @@
 }
 ~~~

-Of course, in GUI application it have to run in diffrent thread. See testGUI source code in jGetFreeProxyList archive for more details.
+Of course, in GUI application it have to run in different thread. See testGUI source code in jGetFreeProxyList archive for more details.

 # How to setting up
@@ -81,7 +81,7 @@
 // For more details see documentation for Settings.
 ~~~

-All settings is static, that means you can not run two diffrent instances of jGetFreeProxyList with diffrent settings.
+All settings is static, that means you can not run two different instances of jGetFreeProxyList with different settings. But you can run many different instances to check the same settings. It can be useful for reach more assurance.

 You can set up [RegExp](https://en.wikipedia.org/wiki/Regular_expression) pattern to parse page and get list of proxies. For example, some page has next html with proxy IP and port:

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ilya Gulevskiy</dc:creator><pubDate>Sat, 25 Mar 2017 18:29:15 -0000</pubDate><guid>https://sourceforge.net0b96186321a98bdba9e4c67d918858693e1afdfb</guid></item><item><title>Home modified by Ilya Gulevskiy</title><link>https://sourceforge.net/p/jgetfreeproxylist/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v21
+++ v22
@@ -42,51 +42,25 @@

 ~~~
 try {
+
+    // There you can adjust settings, see manual.
+    // By default jGetFreeProxyList has common settings for correct work.
+    // But is better to use your own.
+
     // Start work
    jGetFreeProxyList.run();
 }
 catch(Exception e) {
+
+    // Have to call to stop other processes
+    jGetFreeProxyList.shutdown();
+    
    System.out.println(e.getMessage());
 }
 ~~~

-&amp;gt; It is highly recommended to use jGetFreeProxyList **in not main thread** of your app.
+Of course, in GUI application it have to run in diffrent thread. See testGUI source code in jGetFreeProxyList archive for more details.

-According this reason, you can run process in another thread (recommended approach):
-
-~~~
-try {
-   // Execute work in other thread
-   ExecutorService es = Executors.newSingleThreadExecutor();
-   es.submit(new Runnable(){
-       @Override
-       public void run(){
-           try {
-               // Run work processes
-               jGetFreeProxyList.run();
-           }
-           catch(Exception e) {
-               // Have to call to stop other processes
-               jGetFreeProxyList.shutdown();
-               
-               System.out.println(e.getMessage());
-           }
-       }
-   });
-   
-   // Stop work if something happen
-// if (true /**something happen**/){
-//     jGetFreeProxyList.stop();
-// }
-   
-   es.shutdown();
-   es.awaitTermination(Settings.AwaitTestProxy, TimeUnit.SECONDS);
-   
-}
-catch(InterruptedException e) {            
-   System.out.println(e.getMessage());
-}
-~~~

 # How to setting up

@@ -104,10 +78,10 @@
 Settings.GetProxyUrls.add(new InfoUrl(new URL("http://samair.ru/proxy/")));
 Settings.GetProxyUrls.add(new InfoUrl(new URL("http://proxydb.net/")));

-// For more see documentation for Settings.
+// For more details see documentation for Settings.
 ~~~

-All settings is static, that means you can not run two diffrent instances of jGetFreeProxyList with diffrent settings, but you can make additional check for the same settings by run second instance of jGetFreeProxyList.
+All settings is static, that means you can not run two diffrent instances of jGetFreeProxyList with diffrent settings.

 You can set up [RegExp](https://en.wikipedia.org/wiki/Regular_expression) pattern to parse page and get list of proxies. For example, some page has next html with proxy IP and port:

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ilya Gulevskiy</dc:creator><pubDate>Sat, 25 Mar 2017 15:45:40 -0000</pubDate><guid>https://sourceforge.net697feb6519ca6818ed6ea765cc35a519f5223b8a</guid></item><item><title>Home modified by Ilya Gulevskiy</title><link>https://sourceforge.net/p/jgetfreeproxylist/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v20
+++ v21
@@ -6,17 +6,16 @@

 [How it works in library]
 # Getting start
-Add jGetFreeProxyList library to your Java progect and import it in code. 
+Add jGetFreeProxyList.jar library to your Java progect and import it in code. 

-&amp;gt; It is highly recommended to use jGetFreeProxyList **in not main thread** of your app.
-
-
-Insert next code in yours app:
+Firstly, you need to set handlers and create a instance of jGetFreeProxyList:

 ~~~
 // Create instance with listener
 jGetFreeProxyList jGetFreeProxyList = new jGetFreeProxyList(
+
+    // Set handlers
    new jGetFreeProxyListListener(){

        // Method will cal every second and give a consumer percentage of work
@@ -37,12 +36,54 @@
        }
    }
 );
+~~~

+In second, you have to run processes (simple approach):
+
+~~~
 try {
     // Start work
    jGetFreeProxyList.run();
 }
-catch(InterruptedException e) {
+catch(Exception e) {
+   System.out.println(e.getMessage());
+}
+~~~
+
+&amp;gt; It is highly recommended to use jGetFreeProxyList **in not main thread** of your app.
+
+According this reason, you can run process in another thread (recommended approach):
+
+~~~
+try {
+   // Execute work in other thread
+   ExecutorService es = Executors.newSingleThreadExecutor();
+   es.submit(new Runnable(){
+       @Override
+       public void run(){
+           try {
+               // Run work processes
+               jGetFreeProxyList.run();
+           }
+           catch(Exception e) {
+               // Have to call to stop other processes
+               jGetFreeProxyList.shutdown();
+               
+               System.out.println(e.getMessage());
+           }
+       }
+   });
+   
+   // Stop work if something happen
+// if (true /**something happen**/){
+//     jGetFreeProxyList.stop();
+// }
+   
+   es.shutdown();
+   es.awaitTermination(Settings.AwaitTestProxy, TimeUnit.SECONDS);
+   
+}
+catch(InterruptedException e) {            
    System.out.println(e.getMessage());
 }
 ~~~
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ilya Gulevskiy</dc:creator><pubDate>Sat, 25 Mar 2017 15:16:23 -0000</pubDate><guid>https://sourceforge.net066436e162984bb334584b9e0352f8ef71206fce</guid></item><item><title>Home modified by Ilya Gulevskiy</title><link>https://sourceforge.net/p/jgetfreeproxylist/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v19
+++ v20
@@ -72,7 +72,7 @@

 ![](https://sourceforge.net/p/jgetfreeproxylist/wiki/Home/attachment/htmlExample.JPG)

-Now, you can add this site to jGetFreeProxyList settings:
+Now, you can add this page to jGetFreeProxyList settings:

 ~~~
 InfoUrl iu = new InfoUrl(new URL("https://www.us-proxy.org/"));
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ilya Gulevskiy</dc:creator><pubDate>Fri, 24 Mar 2017 16:00:48 -0000</pubDate><guid>https://sourceforge.netc318087749005144aed298ad8e8b6a2c030608ea</guid></item></channel></rss>