Download Latest Version LinkGenerator102.zip (3.2 MB)
Email in envelope

Get an email when there's a new version of URL Forger

Home / Documents
Name Modified Size InfoDownloads / Week
Parent folder
LICENSE.txt 2009-12-18 35.8 kB
Readme.txt 2009-12-18 13.1 kB
Scheme_ENG.jpg 2009-12-18 374.8 kB
Help.chm 2009-12-18 2.2 MB
Help.rar 2009-12-18 1.9 MB
Totals: 5 Items   4.5 MB 0
LINKGENERATOR v 1.0.2 beta
Copyright (C) 2009   Iskander Shafikov
shaficovisk @ yandex . ru
===========================
===========================
1. DESCRIPTION
2. INSTALLATION
	2.1. INSTALLATION (OF DISTRIBUTIVE)
	2.2. COMPILATION (OF SOURCE)
3. KNOWN ISSUES
4. LICENSE / COPYING
===========================

*********************
1. DESCRIPTION
*********************

LinkGenerator is an OS Windows 32-bit based GUI application that may be used to AUTOMATICALLY CREATE A GROUP OF WEB LINKS (HTTP, FTP etc.) to remote files (documents, pages etc.), whose direct addresses (i.e. links) differ from one another based on some strictly set rule, or a set of 'progression formulae'.

I am sure many of us has had such situations, when it is required to download a number of files from a set (group) of web links. And very often we want to download all the files at once, that is, without having to sequentially enter each new link into the browser or download manager. Here's a simple example. Let's assume that some web site, let us call it "http://www.linksdownload.net" (there is no such site yet -- it is only an example), hosts a set of homogenous files (i.e. files having the same format and file extension) which amount to 100. These files can be accessed / downloaded by the corresponding direct links:

http://www.linksdownload.net/downloads/mydoc01_001.doc
http://www.linksdownload.net/downloads/mydoc01_002.doc
http://www.linksdownload.net/downloads/mydoc01_003.doc
http://www.linksdownload.net/downloads/mydoc01_004.doc
...
http://www.linksdownload.net/downloads/mydoc01_100.doc

[EXAMPLE 1] 

It becomes apparent that the links shown here (100 in total) form some group or set, since all the files are kept on the server in one directory and their names reflect their sequential relations -- here, the file names have the sequential number 'attached' at the end: 1 = "001", 2 = "002", and so on. You must agree that downloading all these files manually (i.e. by copying and pasting the links one by one into the browser's address field or download manager) will be an extremely tedious and grueling task. And if it is about thousands or hundreds of thousands of files, such an approach becomes just out of the question.

A solution to this problem might seem self-apparent: creating a program to automate the downloading process, given data on the total number of links and some rules, according to which the filenames should change. Writing this program or script will be of little concern to 'advanced' users who know something about algorithmic programming and/or macros. Yet how can the bulk of users be helped? Not any 'ordinary' user working basically with office and web applications will be able to cope with this problem by programming. Nevertheless, such situations may occur quite regularly with some people.

Ê òîìó æå, âíóòðåííèå ïðàâèëà, ïî êîòîðûì èçìåíÿþòñÿ ññûëêè íà ôàéëû, ìîãóò áûòü âîâñå íå òàêèìè ïðîñòûìè, êàê ïîêàçàíî â ïåðâîì ïðèìåðå. Âîò ïðèìåð áîëåå ñëîæíûõ îòíîøåíèé:

Besides, the internal rules that govern the link (filename) alterations might be not quite so easy as shown in Example 1. Here is an example of a more complicated alteration:

http://www.linksdownload.net/downloads/mydoc01001_aa1.doc
http://www.linksdownload.net/downloads/mydoc01002_ca11.doc
http://www.linksdownload.net/downloads/mydoc02003_eb21.doc
http://www.linksdownload.net/downloads/mydoc02004_gb31.doc
http://www.linksdownload.net/downloads/mydoc03005_ic41.doc
http://www.linksdownload.net/downloads/mydoc03006_kc51.doc
...
http://www.linksdownload.net/downloads/mydoc5001000_bxwsf9991.doc

[EXAMPLE 2]
 
One has to admit it is rather hard to grasp the alteration rules at first glance! Peering somewhat closely, we will notice that, first of all, each line has several changeable parts (in fact, 5) that change independently of one another, each by its own rule; secondly, some of these parts are 'glued' together, so that it becomes difficult to make them apart. After analyzing these lines, we can distinguish the changeable parts (variables) in each line like this:

http://www.linksdownload.net/downloads/mydoc[01][001]_[a][a][1].doc
http://www.linksdownload.net/downloads/mydoc[01][002]_[c][a][11].doc
http://www.linksdownload.net/downloads/mydoc[02][003]_[e][b][21].doc
http://www.linksdownload.net/downloads/mydoc[02][004]_[g][b][31].doc
http://www.linksdownload.net/downloads/mydoc[03][005]_[i][c][41].doc
http://www.linksdownload.net/downloads/mydoc[03][006]_[k][c][51].doc
...
http://www.linksdownload.net/downloads/mydoc[500]1000_[bxw][sf][9991].doc

[EXAMPLE 3]

Thus, we see that there are 1000 links in this group, with 5 independent parts (variables) in each link. 3 of the variables (1, 2 and 5) are 'numeric' and 2 of them (3 and 4) are 'alphabetic'. Besides, the progression (incrementation) for the variables is also different: Variable 1 (01, 01, 02, 02, ..., 500) increments by 1 and skips one line; Variable 2 (001, 002, 003, ..., 1000) also increments by 1, but changes in each line; Variable 5 (1, 11, 21, ..., 9991) increments by 10, etc... This is simply not very easy. Our problem is then worse. What can we do?

Here's a solution! LinkGenerator has all the necessary functionality to cope with link generation problems of virtually any complexity. After a few simple data entry operations, the program generates the whole group of links and writes it into a text file. The resulting text file can then be imported into a download manager for batch download (this option is present, for example, in the free Download Master). Gone is the problem!

*********************
2. INSTALLATION
*********************

	2.1. INSTALLATION (OF DISTRIBUTIVE)
	
The contents of the distributive (bin) ZIP file are as follows:

- Help.CHM:			the help file in the CHM format (currently only in Russian; English version coming soon)
- LinkGen.DLL		the DLL module of the program (dynamic link library)
- LinkGen.EXE		the main executable file for LinkGenerator
- GNU_GPL.TXT		the GNU GPL License notice added to each source file
- LICENSE.TXT		the full text of the GNU General Public License v3 governing this software
- Readme.TXT		this file

LinkGenerator does not require to be 'installed', as most applications do. Just extract the contents of the ZIP file into one folder (anywhere on your hard drive or removable memory drive). Open 'LinkGen.EXE' to start and use the program.

PLEASE NOTICE! The two files, 'LinkGen.EXE' and 'LinkGen.DLL', are integral parts of the program and must always be kept together in one location (directory). If you start the executable (EXE) file without the DLL in the same directory as the EXE file, the GUI *will* start, but link generation will be impossible and the 'Generate!' button will be inactive. If this button is inactive, it means that the program didn't find 'LinkGen.DLL' in its working folder.

	2.2. COMPILATION (OF SOURCE)
	
LinkGenerator was developed, tested and compiled in CodeGear C++Builder 2010 Architect using the Borland compiler. This explains the specificity of some files included in the source ZIP archive. See explain notes below.

The contents of the source ZIP file are as follows:

- LinkGen_AndTest.GROUPPROJ			the CodeGear RAD Studio / C++Builder project group, which is basically an XML file
									specifying the locations of the EXE and DLL projects
- GNU_GPL.TXT						the GNU GPL License notice added to each source file
- LICENSE.TXT						the full text of the GNU General Public License v3 governing this software
- Readme.TXT						this file
- SourceFiles_LinkGenerator.ZIP		the source files for the EXE project (LinkGenerator GUI), containing:
	- ChangePartDialog.cpp			the CPP file for the Parameters Dialog GUI called from LinkGenerator GUI
	- ChangePartDialog.dfm			the DFM file - - - -
	- ChangePartDialog.h			the H (header) file - - - -
	- LinkGenerator.cbproj			the CodeGear RAD Studio / C++Builder project file for LinkGenerator GUI
	- LinkGenerator.cpp				the main CPP file for LinkGenerator GUI (that creates the main form and starts the app)
	- LinkGenerator.res				the resource file for LinkGenerator GUI
	- Main.cpp						the CPP file for LinkGenerator GUI's main form
	- Main.dfm						the DFM file - - - - 
	- Main.h						the H (header) file - - - -
- SourceFiles_LinkGenerator_DLL.ZIP	the source files for the DLL project (library to generate links), including:
	- LinkGen.cbproj				the CodeGear RAD Studio / C++Builder project file for the DLL project
	- LinkGenProc.h					the H file (header) - - - -
	- Main.cpp						the CPP file - - - -

	What is 'LinkGen_AndTest.GROUPPROJ' for?
	
Under the CodeGear C++Builder 2010 Architect environment, the two projects ('LinkGenerator.cbproj' for the LinkGenerator GUI and 'LinkGen.cbproj' for the DLL) were grouped together with the help of the 'project group' feature that creates a file 'LinkGen_AndTest.GROUPPROJ'. If the source files for both projects are extracted in their own folders, which in turn are kept within one common folder (e.g. "C:\Projects\SourceFiles_LinkGenerator" and "C:\Projects\SourceFiles_LinkGenerator_DLL"), 'LinkGen_AndTest.GROUPPROJ' may be used in BCB (Borland C++ Builder) to open up both projects and then switch between them easily. If you have a different environment / compiler, just don't use this file.

	Compilation procedure
	
You should compile the EXE and the DLL projects separately. 

To compile the DLL, just put the source files from 'SourceFiles_LinkGenerator_DLL.ZIP' into one folder and compile them as a DLL. With BCB you just open the project file ('LinkGen.cbproj') and compile. If you use a different compiler, other than Borland, make sure you change the source files so that they include the headers available at your system. All of the source files (both for the EXE and the DLL project) use VCL ('vcl.h') as the main Windows application library. Also some Borland-specific headers are used, e.g. 'StrUtils.hpp' (to work with strings), 'SysUtils.hpp' (Borland's system routines) etc. See 'KNOWN ISSUES' for more information.

The same is true for the EXE project. With BCB, open the project file ('LinkGenerator.cbproj') and compile. For a different compiler / environment, change the code accordingly (see which included files to modify / replace and which functions need to be modified) and compile as an executable.

Both projects compiled, you should be able to run the EXE and (provided that you put the resulting DLL file in the same folder) use the program for your purposes.

*********************
3. KNOWN ISSUES
*********************

LinkGenerator was developed, tested and compiled in CodeGear C++Builder 2010 Architect using the Borland compiler. This supposes the following:

* On the whole, you should be familiar with the BCB style for making Windows VCL applications. If you want to compile the application with some other compiler, change the code carefully to adjust it to your compiler's requirements. Specifically, make sure you understand which Borland-specific classes you must replace and how (e.g. TStringList, UnicodeString, etc.)

* BCB uses '*.cbproj' files as project files to manage and compile projects; compilation should have no bugs provided that you put the source files correctly in one folder for each project and open the corresponding '*.cbproj' file.

* The DLL file uses the 'VC++' DLL entry point style, i.e. it uses the WINAPI main function: 

BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fwdreason, LPVOID lpvReserved)
{
	return 1;
}

That is why the DLL should compile OK on Visual C++ / Visual Studio. 

* Some variable types used in the projects are specific to BCB, e.g. UnicodeString (for a string type). Make sure you make the changes accordingly to manage or replace this type.

* The EXE GUI uses one sample package component, namely, "CSpinButton". If you are not on BCB, make sure you replace this component or get it installed.

* The DLL is linked in the EXE module dynamically, i.e. using typedefs and the WINAPI GetProcAddress function.

* The help button in the EXE GUI uses a macro-defined help file name ('help.chm'); if you rename the help file, make sure you also change the macro in 'Main.h'.

*********************
4. LICENSE / COPYING
*********************

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program (SEE FILE 'LICENSE.TXT'). If not, see <http://www.gnu.org/licenses/>.

SEE FILES 'LICENSE.TXT' AND 'GNU_GPL.TXT' FOR MORE INFORMATION.
Source: Readme.txt, updated 2009-12-18