JDownloader Community - Appwork GmbH
 

Reply
 
Thread Tools Display Modes
  #1  
Old 31.01.2025, 11:25
roddy roddy is offline
Junior Loader
 
Join Date: Jan 2025
Posts: 12
Default [EventScripter] Instagram request limit feature

In order to avoid bans and restrictions from Instagram I think the global request limit could have a random range input feature. Crawling on one defined time limit will ultimately be detected and result in account restrictions, I've tried long limits and it still gives me account issues with Instagram. If the limit can be randomized in order to avoid automated activity detection and imitate normal user usage then I think it will be less likely and probably impossible for it to be detected. An option under Global request limit to select [ Random ] with two input boxes. For example the request limit between a user defined range [ 100 ] → [ 999999 ] keeping the requests as random as possible, the algorithm that jdownloader uses to randomize request will be crucial.
Reply With Quote
  #2  
Old 31.01.2025, 11:44
pspzockerscene's Avatar
pspzockerscene pspzockerscene is online now
Community Manager
 
Join Date: Mar 2009
Location: Deutschland
Posts: 74,109
Default

I'am not planning to add any more "bot detection avoid" features for instagram since that would be a waste of time, leading to an endless "cat & mouse" game.
See also:
https://board.jdownloader.org/showthread.php?t=92962

Adding to this:
- So far, the idea that such a randomized delay would help is only a speculation
- There are other tools, specifically made to download from Instagram which may do a better job. Example: github.com/instaloader/instaloader
- JDownloader is open source. Feel free to implement/test this change yourself and if it helps, we can still officially add it. Source code: https://support.jdownloader.org/know...up-ide-eclipse
__________________
JD Supporter, Plugin Dev. & Community Manager

Erste Schritte & Tutorials || JDownloader 2 Setup Download
Spoiler:

A users' JD crashes and the first thing to ask is:
Quote:
Originally Posted by Jiaz View Post
Do you have Nero installed?
Reply With Quote
  #3  
Old 31.01.2025, 12:21
roddy roddy is offline
Junior Loader
 
Join Date: Jan 2025
Posts: 12
Default

I'm almost certain it would work. If there are any experienced coders out there who want to give this a shot, try this, I think it will definitely work. Ive been inputting random numbers manually and it doesn't give me any Instagram issue but the moment I stop it, it detects it. It's long and tedious doing it manually especially when you want to crawl lots of accounts but this will definitely work.
Reply With Quote
  #4  
Old 31.01.2025, 12:35
pspzockerscene's Avatar
pspzockerscene pspzockerscene is online now
Community Manager
 
Join Date: Mar 2009
Location: Deutschland
Posts: 74,109
Default

Sorry, I'am not willing to invest the time.
Also, as explained in other posts, IG has so many possibilities to detect tools like JDownloader.
If they want, they will detect such tools and this will end up in an never ending and time consuming arms race.

Therefore, as explained either conduct tests on your own or try other tools that are specifically designed to download from IG.
__________________
JD Supporter, Plugin Dev. & Community Manager

Erste Schritte & Tutorials || JDownloader 2 Setup Download
Spoiler:

A users' JD crashes and the first thing to ask is:
Quote:
Originally Posted by Jiaz View Post
Do you have Nero installed?
Reply With Quote
  #5  
Old 31.01.2025, 15:24
mgpai mgpai is offline
Script Master
 
Join Date: Sep 2013
Posts: 1,670
Default

Quote:
Originally Posted by roddy View Post
Ive been inputting random numbers manually ...
Use eventscripter to automate.
Reply With Quote
  #6  
Old 31.01.2025, 15:27
pspzockerscene's Avatar
pspzockerscene pspzockerscene is online now
Community Manager
 
Join Date: Mar 2009
Location: Deutschland
Posts: 74,109
Default

* this can help him with downloading but not with crawling.
__________________
JD Supporter, Plugin Dev. & Community Manager

Erste Schritte & Tutorials || JDownloader 2 Setup Download
Spoiler:

A users' JD crashes and the first thing to ask is:
Quote:
Originally Posted by Jiaz View Post
Do you have Nero installed?
Reply With Quote
  #7  
Old 01.02.2025, 12:05
roddy roddy is offline
Junior Loader
 
Join Date: Jan 2025
Posts: 12
Default

Not bad eh?
Attached Images
File Type: png Random Request Limit Feature.png (367.8 KB, 3 views)
File Type: png Random Request Limit Feature 2.png (368.4 KB, 3 views)
Reply With Quote
  #8  
Old 03.02.2025, 12:50
pspzockerscene's Avatar
pspzockerscene pspzockerscene is online now
Community Manager
 
Join Date: Mar 2009
Location: Deutschland
Posts: 74,109
Default

Nice screenshots.
Here they are publicly visible:
Spoiler:





Is that a mockup or did you actually implement said functionality yourself?
__________________
JD Supporter, Plugin Dev. & Community Manager

Erste Schritte & Tutorials || JDownloader 2 Setup Download
Spoiler:

A users' JD crashes and the first thing to ask is:
Quote:
Originally Posted by Jiaz View Post
Do you have Nero installed?
Reply With Quote
  #9  
Old 05.02.2025, 14:09
roddy roddy is offline
Junior Loader
 
Join Date: Jan 2025
Posts: 12
Default

They are mockups but I'm hoping someone will come across this and be inspired to try it before I attempt to haha, I think the hardest part will be choosing the right algorithm to use for the randomizer, I've searched a few and it's tricky.

Attached Images
File Type: jpg Screenshot_20250131-052634~2.jpg (54.5 KB, 10 views)
Reply With Quote
  #10  
Old 05.02.2025, 14:39
pspzockerscene's Avatar
pspzockerscene pspzockerscene is online now
Community Manager
 
Join Date: Mar 2009
Location: Deutschland
Posts: 74,109
Default

Quote:
Originally Posted by roddy View Post
They are mockups but I'm hoping someone will come across this and be inspired to try it before I attempt to haha, I think the hardest part will be choosing the right algorithm to use for the randomizer
That is the easiest part:
Code:
new Random().nextInt(userDefinedRange)
I don't see any need for any more spohisticated randomization algo:
The range is user-defined and the above line of code returns a random value in the pre defined range.
__________________
JD Supporter, Plugin Dev. & Community Manager

Erste Schritte & Tutorials || JDownloader 2 Setup Download
Spoiler:

A users' JD crashes and the first thing to ask is:
Quote:
Originally Posted by Jiaz View Post
Do you have Nero installed?
Reply With Quote
  #11  
Old 05.02.2025, 15:10
mgpai mgpai is offline
Script Master
 
Join Date: Sep 2013
Posts: 1,670
Default

Quote:
Originally Posted by pspzockerscene View Post
* this can help him with downloading but not with crawling.
I was talking about using eventscripter to automatically randomize "Instagram.globalrequestintervallimitmilliseconds" value, instead of adjusting it manually. Have no idea about the inner workings of the plugin.
Reply With Quote
  #12  
Old 05.02.2025, 15:21
pspzockerscene's Avatar
pspzockerscene pspzockerscene is online now
Community Manager
 
Join Date: Mar 2009
Location: Deutschland
Posts: 74,109
Default

Okay I didn't get this at all.
It's a sketchy idea but it will probably work :D
__________________
JD Supporter, Plugin Dev. & Community Manager

Erste Schritte & Tutorials || JDownloader 2 Setup Download
Spoiler:

A users' JD crashes and the first thing to ask is:
Quote:
Originally Posted by Jiaz View Post
Do you have Nero installed?
Reply With Quote
  #13  
Old 05.02.2025, 22:09
roddy roddy is offline
Junior Loader
 
Join Date: Jan 2025
Posts: 12
Default

Quote:
Originally Posted by pspzockerscene View Post
That is the easiest part:
Code:
new Random().nextInt(userDefinedRange)
I don't see any need for any more spohisticated randomization algo:
The range is user-defined and the above line of code returns a random value in the pre defined range.
Hopefully you are right and a simple Random( ) line is sufficient, if it can somewhat imitate normal user activity it shouldn't have any problems.

Quote:
Originally Posted by pspzockerscene View Post
Okay I didn't get this at all.
It's a sketchy idea but it will probably work :D
I'm stoked you finally think so now

Quote:
Originally Posted by mgpai View Post
I was talking about using eventscripter to automatically randomize "Instagram.globalrequestintervallimitmilliseconds" value, instead of adjusting it manually.
That would be nice if it was a possible alternative to help crawl. Like I've said I've done it manually for hundreds of accounts, for hours and it works but it's strenuous work. Hopefully we get an official plugin update now

Last edited by roddy; 05.02.2025 at 22:41.
Reply With Quote
  #14  
Old 06.02.2025, 10:05
pspzockerscene's Avatar
pspzockerscene pspzockerscene is online now
Community Manager
 
Join Date: Mar 2009
Location: Deutschland
Posts: 74,109
Default

Quote:
Originally Posted by roddy View Post
Hopefully you are right and a simple Random( ) line is sufficient, if it can somewhat imitate normal user activity it shouldn't have any problems.
I know I'm repeating myself but to be absolutely clear:
- Even a more sophisticated "randomness" does not simulate normal users' behavior at all
- The instagram website has much much more trackiong abilities: It can fingerprint the users' hardware, it can track mouse movements -> All of this is missing when you are using JD -> IG will always know that you are using download tools unless you are using something that is remote-controlling a real browser (such as "Selenium")

Quote:
Originally Posted by roddy View Post
I'm stoked you finally think so now
No, you mis-understood me:
All I said is: You could realize this via EventScripter script without changing the plugin.
If you want this, go ahead and inform yourself about how EventScripter scripts work and write yourself a script:
EventScripter subforum:
https://board.jdownloader.org/forumdisplay.php?f=52
EventScripter help article:
https://support.jdownloader.org/know...event-scripter


Quote:
Originally Posted by roddy View Post
Hopefully we get an official plugin update now
No, not planned.
__________________
JD Supporter, Plugin Dev. & Community Manager

Erste Schritte & Tutorials || JDownloader 2 Setup Download
Spoiler:

A users' JD crashes and the first thing to ask is:
Quote:
Originally Posted by Jiaz View Post
Do you have Nero installed?
Reply With Quote
  #15  
Old 06.02.2025, 11:51
roddy roddy is offline
Junior Loader
 
Join Date: Jan 2025
Posts: 12
Default

Yes agree ig has plenty of trackers on users nowadays, but when it comes to simply fetching data from their servers on a single constant time limit then it will most certainly detect this and take action, I've had to recover my ig account from being suspended so many times I lost count, and like I've said adjusting the fetch times in a random manor can effectively stop detections and suspensions from happening, that's why I'm still able to use ig.

And yeah I got excited earlier today but then later I thought you might have just been referring to mgpai's post about the eventscripter idea, and I was correct haha to good to be true. But anyway, I will be definitely trying the eventscripter method now until there is an official ig plugin update to randomize the request limit. Thanks mgpai for the suggestion and thanks to you in advance if you ever decide to create this feature.
Reply With Quote
  #16  
Old 06.02.2025, 12:03
pspzockerscene's Avatar
pspzockerscene pspzockerscene is online now
Community Manager
 
Join Date: Mar 2009
Location: Deutschland
Posts: 74,109
Default

Quote:
Originally Posted by roddy View Post
I've had to recover my ig account from being suspended so many times[...]
Unless you are trying to download items from private accounts, I highly recommend to create an extra IG account solely for downloading just in case they ever perma-ban you.

Quote:
Originally Posted by roddy View Post
But anyway, I will be definitely trying the eventscripter method now[...]
Feel free to ask for help in the EventScripter subforum.

I know I'm repeating myself but I highly recommend trying alternatives such as "instaloader", even if you only do it to see, which actions they have eventually taken to avoid account bans and also to see, how it performs compared to JDownloader.
See: github.com/instaloader/instaloader
__________________
JD Supporter, Plugin Dev. & Community Manager

Erste Schritte & Tutorials || JDownloader 2 Setup Download
Spoiler:

A users' JD crashes and the first thing to ask is:
Quote:
Originally Posted by Jiaz View Post
Do you have Nero installed?
Reply With Quote
  #17  
Old 06.02.2025, 12:40
mgpai mgpai is offline
Script Master
 
Join Date: Sep 2013
Posts: 1,670
Default

Quote:
Originally Posted by pspzockerscene View Post
Code:
new Random().nextInt(userDefinedRange)

I don't see any need for any more spohisticated randomization algo:
The range is user-defined and the above line of code returns a random value in the pre defined range.
Quote:
Originally Posted by roddy View Post
... until there is an official ig plugin update to randomize the request limit.
If the plugin uses the above code, I believe it already does. The user-defined value in the plugin setting is the upper range and not a constant limit. Above code will return a random int between 0 and the user-defined limit.
Reply With Quote
  #18  
Old 06.02.2025, 12:52
pspzockerscene's Avatar
pspzockerscene pspzockerscene is online now
Community Manager
 
Join Date: Mar 2009
Location: Deutschland
Posts: 74,109
Default

Quote:
Originally Posted by mgpai View Post
If the plugin uses the above code, I believe it already does.
It doesn't:
Hoster plugin (InstaGramCom.java):
Code:
@Override
public void init() {
	InstaGramComDecrypter.setRequestIntervalLimitGlobal();
}
Crawler plugin (InstaGramComDecrypter.java):
Code:
public static void setRequestIntervalLimitGlobal() {
	final int limit = PluginJsonConfig.get(InstagramConfig.class).getGlobalRequestIntervalLimitMilliseconds();
	if (limit > 0) {
		Browser.setRequestIntervalLimitGlobal("instagram.com", limit);
		Browser.setRequestIntervalLimitGlobal("cdninstagram.com", limit);
	}
}
Reference:
Code:
github.com/mycodedoesnotcompile2/jdownloader_mirror/blob/main/svn_trunk/src/jd/plugins/decrypter/InstaGramComDecrypter.java#L152
The rest of the IntervalLimit handling is in the Browser class:
Code:
github.com/mycodedoesnotcompile2/jdownloader_mirror/blob/main/svn_browser/src/jd/http/Browser.java
To make it random, an EventScripter script that changes the value could help or, if there was a plugin setting, it would either need to be implemented on plugin level or inside the Browser class.
__________________
JD Supporter, Plugin Dev. & Community Manager

Erste Schritte & Tutorials || JDownloader 2 Setup Download
Spoiler:

A users' JD crashes and the first thing to ask is:
Quote:
Originally Posted by Jiaz View Post
Do you have Nero installed?
Reply With Quote
  #19  
Old 06.02.2025, 13:12
mgpai mgpai is offline
Script Master
 
Join Date: Sep 2013
Posts: 1,670
Default

Script:
Code:
/*
    ig random request limit
    trigger : new crawler job
*/

var min = 1000;
var max = 9999;
var int = Math.floor(Math.random() * (max - min + 1)) + min;

callAPI(
    "config", "set",
    "org.jdownloader.plugins.components.config.InstagramConfig",
    "cfg/plugins/HOSTER/instagram.com",
    "GlobalRequestIntervalLimitMilliseconds", int
);

note: can be used with any trigger or multiple event triggers. For e.g. interval, a download started etc.
Reply With Quote
  #20  
Old 06.02.2025, 13:38
roddy roddy is offline
Junior Loader
 
Join Date: Jan 2025
Posts: 12
Default

Quote:
Originally Posted by pspzockerscene View Post
I highly recommend to create an extra IG account solely for downloading just in case they ever perma-ban you.
I've created multiple burner accounts and those are the ones that get perma-banned. I guess my account seems more authentic bc of my real activity. But I also have another burner account that's been holding up.

Quote:
I highly recommend trying alternatives such as "instaloader"
I probably should try it but I'm accustomed with JD and all it's features and remote capabilities and ui, I don't really want to run another program, JD is great it just needs minor adjustments to accommodate, but maybe I'll try it if I can't get the eventscripter to work for me but I think eventscripter just might do.

Quote:
Originally Posted by pspzockerscene View Post
It doesn't [...]
To make it random, an EventScripter script that changes the value could help or, if there was a plugin setting, it would either need to be implemented on plugin level or inside the Browser class.
So it wouldnt randomize from 0 to user-defined? Could it somehow be embedded in the cookie then?

Quote:
Originally Posted by mgpai View Post
Script [...]
note: can be used with any trigger or multiple event triggers. For e.g. interval, a download started etc.
I have absolutely no issues with downloading, it can be 0 with no problems, it's just crawling– that's the issue ig is just super sensitive to crawls for some reason.
Reply With Quote
  #21  
Old 06.02.2025, 14:28
pspzockerscene's Avatar
pspzockerscene pspzockerscene is online now
Community Manager
 
Join Date: Mar 2009
Location: Deutschland
Posts: 74,109
Default

Quote:
Originally Posted by roddy View Post
So it wouldnt randomize from 0 to user-defined?
I don't understand.
I will just re-phrase my last reply:
I was just talking about how the randomization would be implemented in JDownloaders' code if I wanted to implement it.
My sentence was unrelated to the script idea.

Quote:
Originally Posted by roddy View Post
Could it somehow be embedded in the cookie then?
I don't understand.

Quote:
Originally Posted by roddy View Post
I have absolutely no issues with downloading, it can be 0 with no problems, it's just crawling– that's the issue ig is just super sensitive to crawls for some reason.
Don't say that too soon.
Fyi:
If a previously crawled direct-URL expires, the hoster-plugin can internally call the crawler plugin again.
This means, fresh crawl processes can happen at any point of time [yes, also "during"/before downloading] without you knowing.
This will especially happen when you crawl a lot of items, leave them in your linkgrabberlist/downloadlist and crawl them a long time later.
Code reference:
Code:
github.com/mycodedoesnotcompile2/jdownloader_mirror/blob/main/svn_trunk/src/jd/plugins/hoster/InstaGramCom.java#L530
__________________
JD Supporter, Plugin Dev. & Community Manager

Erste Schritte & Tutorials || JDownloader 2 Setup Download
Spoiler:

A users' JD crashes and the first thing to ask is:
Quote:
Originally Posted by Jiaz View Post
Do you have Nero installed?
Reply With Quote
  #22  
Old 06.02.2025, 15:23
roddy roddy is offline
Junior Loader
 
Join Date: Jan 2025
Posts: 12
Default

Quote:
Originally Posted by pspzockerscene View Post
I was just talking about how the randomization would be implemented in JDownloaders' code if I wanted to implement it.
My sentence was unrelated to the script idea.
So mgpai's code suggestions could actually work but your saying just not exactly like an official plugin feature if it were implemented.

Quote:
Originally Posted by pspzockerscene View Post
Don't say that too soon.
This will especially happen when you crawl a lot of items, leave them in your linkgrabberlist/downloadlist and crawl them a long time later.
When I do start the downloads I disable my ig account in the account manager and log out of ig completely before downloading. This works fine with no issues.
Reply With Quote
  #23  
Old 06.02.2025, 15:34
pspzockerscene's Avatar
pspzockerscene pspzockerscene is online now
Community Manager
 
Join Date: Mar 2009
Location: Deutschland
Posts: 74,109
Default

Quote:
Originally Posted by roddy View Post
So mgpai's code suggestions could actually work
Yes.

Quote:
Originally Posted by roddy View Post
but your saying just not exactly like an official plugin feature if it were implemented.
Nope, the end result could be the same.
I was just thinking out loud about what would need to be done to integrate the feature into the plugin.
That stentence was completely unrelated to how the script solution could eventually perform.

Quote:
Originally Posted by roddy View Post
When I do start the downloads I disable my ig account in the account manager and log out of ig completely before downloading. This works fine with no issues.
This will work fine until a refresh of a single direct-URL is needed.
Then such items will fail with error "skipped - account required".
Also, the instagram plugin is already heavily optimized to really only perform logged-in requests when necessary so you should be good with just leaving your IG account enabled all the time [of course on your own risc].
In 99% of all cases, all necessary information for downloading is available after the crawl process (also the direct-urls to the media files) so the download requests will happen without login cookies.
__________________
JD Supporter, Plugin Dev. & Community Manager

Erste Schritte & Tutorials || JDownloader 2 Setup Download
Spoiler:

A users' JD crashes and the first thing to ask is:
Quote:
Originally Posted by Jiaz View Post
Do you have Nero installed?

Last edited by pspzockerscene; 06.02.2025 at 15:39. Reason: Formatting++
Reply With Quote
  #24  
Old 06.02.2025, 16:20
roddy roddy is offline
Junior Loader
 
Join Date: Jan 2025
Posts: 12
Default

Quote:
Originally Posted by pspzockerscene View Post
I was just thinking out loud about what would need to be done to integrate the feature into the plugin.
Ah ok, your intial code line of new Random().nextInt(userDefinedRange) that mgpai was referring to was just the tip of the iceberg so to speak.


Quote:
This will work fine until a refresh of a single direct-URL is needed.
Then such items will fail with error "skipped - account required".
Also, the instagram plugin is already heavily optimized to really only perform logged-in requests when necessary so you should be good with just leaving your IG account enabled all the time [of course on your own risc].
In 99% of all cases, all necessary information for downloading is available after the crawl process (also the direct-urls to the media files) so the download requests will happen without login cookies.
Yes very rarely do I ever see that error, sometimes I do log back in and it will be downloaded, if it can't it usually means the user actually deleted the post/content themselves in which case–File not found. And yeah I like to log out anyways just to take extra precautions, just in case.
Reply With Quote
  #25  
Old 06.02.2025, 16:23
pspzockerscene's Avatar
pspzockerscene pspzockerscene is online now
Community Manager
 
Join Date: Mar 2009
Location: Deutschland
Posts: 74,109
Default

Quote:
Originally Posted by roddy View Post
Ah ok, your intial code line of new Random().nextInt(userDefinedRange) that mgpai was referring to was just the tip of the iceberg so to speak.
That was just to illustrate that no extra algo is needed to generate a random number since a Java function for this already exists aka "no need to reinvent the wheel".
__________________
JD Supporter, Plugin Dev. & Community Manager

Erste Schritte & Tutorials || JDownloader 2 Setup Download
Spoiler:

A users' JD crashes and the first thing to ask is:
Quote:
Originally Posted by Jiaz View Post
Do you have Nero installed?
Reply With Quote
  #26  
Old 07.02.2025, 04:37
roddy roddy is offline
Junior Loader
 
Join Date: Jan 2025
Posts: 12
Default

Quote:
Originally Posted by pspzockerscene View Post
That was just to illustrate that no extra algo is needed to generate a random number since a Java function for this already exists aka "no need to reinvent the wheel".
Agreed, no need to "reinvent the wheel" but when a wheel breaks down or blows out it needs to be changed or fixed i.e. when the default randomizer algorithm is no longer sufficient or obsolete; then it needs a new wheel or tire i.e. a new randomizer algorithm. But we haven't even got close to such a point and may never, dependent upon how well the standard random algorithm can perform against ig's automated activity detection.

Last edited by roddy; 07.02.2025 at 05:09.
Reply With Quote
  #27  
Old 07.02.2025, 22:39
roddy roddy is offline
Junior Loader
 
Join Date: Jan 2025
Posts: 12
Default

Quote:
Originally Posted by mgpai View Post
Script:
Code:
/*
    ig random request limit
    trigger : new crawler job
*/

var min = 1000;
var max = 9999;
var int = Math.floor(Math.random() * (max - min + 1)) + min;

callAPI(
    "config", "set",
    "org.jdownloader.plugins.components.config.InstagramConfig",
    "cfg/plugins/HOSTER/instagram.com",
    "GlobalRequestIntervalLimitMilliseconds", int
);

note: can be used with any trigger or multiple event triggers. For e.g. interval, a download started etc.
When crawling a dlc or multiple links at once it doesn't seem to pick a random number for each individual link within, it seems it chooses a random number then uses that same number for all links within that one crawl job.
Reply With Quote
  #28  
Old 09.02.2025, 20:54
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 81,926
Default

@roddy: choose different trigger then. the script is executed once for each "new crawler job". Maybe change to interval and use something like 10 seconds and thus the script will be executed every 10 seconds.
__________________
JD-Dev & Server-Admin
Reply With Quote
  #29  
Old 10.02.2025, 02:00
roddy roddy is offline
Junior Loader
 
Join Date: Jan 2025
Posts: 12
Default

Quote:
Originally Posted by Jiaz View Post
@roddy: choose different trigger then. the script is executed once for each "new crawler job". Maybe change to interval and use something like 10 seconds and thus the script will be executed every 10 seconds.
Thanks, this works and have to say looks visually pleasing actually seeing the numbers randomly cycle through
Attached Thumbnails
Video_2025-02-09_170648.gif  
Reply With Quote
  #30  
Old 10.02.2025, 14:38
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 81,926
Default

@roddy: Thanks for the feedback nice *animation*
__________________
JD-Dev & Server-Admin
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT +2. The time now is 16:23.
Provided By AppWork GmbH | Privacy | Imprint
Parts of the Design are used from Kirsch designed by Andrew & Austin
Powered by vBulletin® Version 3.8.10 Beta 1
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.