Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

[SHOWCASE] Shotly.NET - fastest way to upload your screenshots

Junior Spellweaver
Joined
Dec 29, 2015
Messages
111
Reaction score
75
Hey guys,

I started about 2 years (2 times breaked) a new Project called 'Shotly', cuz I want to expand C# skillz.

Shotly.NET was an idea from a old friend and a big youtuber. They started the project and I joined into this nice group. But o
ne day it came to a dispute. We did a break and now we're back. I'm currently working alone on Shotly.NET and searched some nice guys via Facebook.

If they are some C# developer here, they can help me maybe.
(send PM if you want to help me)

That things are done:
  • Capture desktop
  • Capture active window
  • Language System
  • Config-Class (config.ini)
  • Capture area
  • Graphics
  • Log System (log4net ^.^)

What must be done:
  • Database
  • Rest API in NodeJS
  • Website
  • API to other uploaders (like Imgur, but the screen will be saved in our servers)

What's the different between us and the others?
We have a cool language system and a fast server. We're hosting our servers at Voxility with 10gbits DDoS Protection. We try our best to make user happy.

We also search users who can help us to translate Shotly.

Translated languages:
  • German
  • English



Snippets & Screenshots
Code:
        public void closeForm()        {
            shotlyNotification.Visible = false;
            shotlyNotification.Icon = null;
            shotlyNotification.Visible = false;
            shotlyNotification.Dispose();
            Logger.Info("Closing Shotly");
            Logger.Debug("-------------------------------------------------------------------");
        }

Code:
        private void setLanguageComponents()        {
            try
            {
                //Form
                Text = Language.get("SHOTLY_GENERAL_FORM_TEXT");


                //Tabs
                shotlyGeneralTab1.Text = Language.get("SHOTLY_GENERAL_TAB_1");
                shotlyGeneralTab2.Text = Language.get("SHOTLY_GENERAL_TAB_2");
                shotlyGeneralTab3.Text = Language.get("SHOTLY_GENERAL_TAB_3");


                //Tab1
                generalSettingsGroup.Text = Language.get("SHOTLY_GENERAL_TAB_1_SETTINGSBOX");
                startupCheckbox.Text = Language.get("SHOTLY_GENERAL_TAB_1_START_WITH_WINDOWS");


                if(Config.get("Shotly", "startup") == "false")
                {
                    startupCheckbox.Checked = false;
                    Logger.Info("Shotly doesn't start with Windows");
                }
                else
                {
                    startupCheckbox.Checked = true;
                    Logger.Info("Shotly will start with Windows");
                }


                //Tab3
                shotlyGeneral3Header.Text = Language.get("SHOTLY_GENERAL_TAB_3_HEADER_TEXT");
                clipboardGroup.Text = Language.get("SHOTLY_GENERAL_TAB_3_CLIPBOARD");
                localScreensGroup.Text = Language.get("SHOTLY_GENERAL_TAB_3_LOCAL_SCREENS");
                shotlyGroupLanguage.Text = Language.get("SHOTLY_GENERAL_TAB_3_LANGUAGE");
                saveScreensCheck.Text = Language.get("SHOTLY_GENERAL_TAB_3_SAVE_SCREENS_QUESTION");
                setDefaultScreenshotPath.Text = Language.get("SHOTLY_GENERAL_TAB_3_SET__DEFAULT_SCREENSHOT_PATH");
                openFolder.Text = Language.get("SHOTLY_GENERAL_TAB_3_OPEN_SCREENSHOT_FOLDER");
                screenshotPath.Text = Config.get("Shotly", "screenshotPath");






                if (Config.get("Shotly", "saveScreenshotsLocal") == "false")
                {


                    setDefaultScreenshotPath.Enabled = false;
                    setScreenPath.Enabled = false;
                    openFolder.Enabled = false;


                    saveScreensCheck.Checked = false;


                    Logger.Info("Cann't save screenshots locally - check your Settings");
                }
                else
                {


                    setDefaultScreenshotPath.Enabled = true;
                    setScreenPath.Enabled = true;
                    openFolder.Enabled = true;


                    saveScreensCheck.Checked = true;


                    Logger.Info("It's possible to save screenshots locally");
                }
            }
            catch(Exception exe)
            {
                Logger.Error("Cann't set language components - Exception " + exe.ToString());
                Main m = new Main();
                m.closeForm();
            }
        }

Code:
        private void languageDropDown_SelectedIndexChanged(object sender, EventArgs e)        {
            try
            {
                switch (languageDropDown.Text)
                {
                    case "English":
                        Config.set("lang", "english", "Shotly");
                        break;


                    case "Deutsch":
                        Config.set("lang", "german", "Shotly");
                        break;
                }
                Logger.Info("Changed language to " + languageDropDown.Text);
                Language.loadLang();
                Logger.Info("Loaded Language-File");
                setLanguageComponents();
                Logger.Info("Loading language components");
            }
            catch (Exception ex)
            {
                Logger.Error("Can't set language - Exception" + ex.ToString());
                Main m = new Main();
                m.closeForm();
            }
        }

Kylon - [SHOWCASE] Shotly.NET - fastest way to upload your screenshots - RaGEZONE Forums


Kylon - [SHOWCASE] Shotly.NET - fastest way to upload your screenshots - RaGEZONE Forums


Kylon - [SHOWCASE] Shotly.NET - fastest way to upload your screenshots - RaGEZONE Forums


Kylon - [SHOWCASE] Shotly.NET - fastest way to upload your screenshots - RaGEZONE Forums


see ya
 
Last edited:
Joined
Aug 14, 2009
Messages
2,304
Reaction score
1,189
What's the different between us and the others?
We have a cool language system and a fast server. We're hosting our servers at Voxility with 10gbits DDoS Protection. We try our best to make user happy.
I don't quite understand this..

Why exactly should I use your program instead of ShareX?
ShareX has multi-hoster support (I can host wherever I want) -> Fast server debunked
It is open-source. Yours not..
 
Junior Spellweaver
Joined
Dec 29, 2015
Messages
111
Reaction score
75
I don't quite understand this..

Why exactly should I use your program instead of ShareX?
ShareX has multi-hoster support (I can host wherever I want) -> Fast server debunked
It is open-source. Yours not..
(send PM if you want to help me)

brruhh :sleep:

I'll set it Open-Source, but not now. It's not finished. First I want to publish the first version and then. ^.^
 
Junior Spellweaver
Joined
Dec 29, 2015
Messages
111
Reaction score
75
Users has the choice to login or upload anonym (but IP will be log).

Kylon - [SHOWCASE] Shotly.NET - fastest way to upload your screenshots - RaGEZONE Forums


Kylon - [SHOWCASE] Shotly.NET - fastest way to upload your screenshots - RaGEZONE Forums


Kylon - [SHOWCASE] Shotly.NET - fastest way to upload your screenshots - RaGEZONE Forums


Kylon - [SHOWCASE] Shotly.NET - fastest way to upload your screenshots - RaGEZONE Forums


----------------------------------

I started with the RestAPI too (in NodeJS), and here some snippets (nothing special):
Code:
    app.post('/login', function(req, res) {
        if(req.headers['user-agent'] == USER_AGENT) {
        var username = sql.escape(req.body.username);
        var password = sql.escape(crypto.createHash('md5').update(req.body.password).digest("hex"));
        
        sql.query("SELECT id, username, password FROM users WHERE username = " + username + " AND password = " + password + " LIMIT 1", (error, rows, fields) => {
            if(error) {
                console.log('Couldn\'t execute query: ' + error);
                var response = {'response' : error};
                res.end(JSON.stringify(response));
            }
            else {
                if(rows.length > 0) {
                    var id = sql.escape(rows[0].id);
                    var sessionID = phpjs.md5(phpjs.uniqid(phpjs.rand(), true));
                    console.log(sessionID);


                    sql.query('UPDATE users SET sessionID = \'' + sessionID + '\' WHERE id = \'' + id + '\'', (error, rows, fields) => {
                        if(error) {
                            console.log('Couldn\'t execute query: ' + error);
                            var response = {'response' : 'error2'};
                            res.end(JSON.stringify(response));
                        }
                        else {
                            var response = {'response' : sessionID};
                            console.log('GET ("/login") got requested with: sessionID:' + sessionID + ' username: ' + username + ' password: ' + password);
                            res.end(JSON.stringify(response));
                        }
                    });
                }
                else {
                    var response = {'response' : false};
                    res.end(JSON.stringify(response));
                }
            }
        });
    }
});

Code:
var app = express();
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
var sql = mysql.createConnection({
    host    : '127.0.0.1',
    user    : 'root',
    password: '',
    database: ''
});
 
Last edited:
[emoji848]
Legend
Joined
Dec 3, 2011
Messages
2,232
Reaction score
1,518
So something like the Snipping Tool or Snag-It?
Is there something special that will make it outstanding? :p
I like those kind of screen capturing tools a lot, so it looks like a nice project.

I once started such a project too in C++ but it didn't went too well. Hell a lot of poop to do until you captured the screen somehow :p I hope it's less annoying to do in .NET
 
Newbie Spellweaver
Joined
Nov 26, 2013
Messages
12
Reaction score
0
Looks like a cool project. Website doesn't open for me though
 
Newbie Spellweaver
Joined
Feb 24, 2016
Messages
23
Reaction score
1
Looks good. Your application could look much nicer though, and your website is offline atm
 
Junior Spellweaver
Joined
Dec 29, 2015
Messages
111
Reaction score
75
Looks good. Your application could look much nicer though, and your website is offline atm
I forgot to subscribe the thread. My bad. Sorry for the late answer.
We're currently switching the servers, so I don't found the time to install nginx. :p
 
Newbie Spellweaver
Joined
Feb 24, 2016
Messages
23
Reaction score
1
I forgot to subscribe the thread. My bad. Sorry for the late answer.
We're currently switching the servers, so I don't found the time to install nginx. :p
Haha no worries, just tell me when it's up. I'm interested in seeing it.
 
Newbie Spellweaver
Joined
Mar 7, 2016
Messages
34
Reaction score
4
What's the different between us and the others?
We have a cool language system and a fast server. We're hosting our servers at Voxility with 10gbits DDoS Protection. We try our best to make user happy.
[h=4]ebsite is offline[/h] No cached version of this page is available.


[h=1]Error 522 Ray ID: 2800f108bcfd20b4 • 2016-03-07 20:54:31 UTC[/h][h=2]Connection timed out[/h]
Recorded GMT+8:00 at exactly 4:57 AM

I don't quite understand how is it down atm and you have a very 10gbits ddos protection.
 
Junior Spellweaver
Joined
Dec 29, 2015
Messages
111
Reaction score
75
[h=4]ebsite is offline[/h] No cached version of this page is available.


[h=1]Error 522 Ray ID: 2800f108bcfd20b4 • 2016-03-07 20:54:31 UTC[/h][h=2]Connection timed out[/h]
Recorded GMT+8:00 at exactly 4:57 AM

I don't quite understand how is it down atm and you have a very 10gbits ddos protection.
Server down, cuz hoster.......

 
Junior Spellweaver
Joined
Dec 29, 2015
Messages
111
Reaction score
75
We'll soon sponsored from a big server hoster. Don't worry, this project isn't dead!
 
Junior Spellweaver
Joined
Dec 29, 2015
Messages
111
Reaction score
75
Sooooooooo. We got the new server and now I'm currently expand the API.
ya, see you later.

btw. we're searching people who wants to translate shotly in your language.
Just PM me. >.>
 
Junior Spellweaver
Joined
Dec 29, 2015
Messages
111
Reaction score
75
x0AeGa - [SHOWCASE] Shotly.NET - fastest way to upload your screenshots - RaGEZONE Forums

It's still alive! I just worked on Shotly.NET now and yeah. You can upload your image to our server without problems!

Shotly.NET normal process => 27mb from your ram
starting Capture Area or what ever => jumping on 137mb and going down.

I'll create a repo on github soon. Droppy:
Code:
{
    "SHOTLY_GENERAL_FORM_TEXT" : "Settings - Shotly.NET",
    "SHOTLY_GENERAL_NOTIFICATION_TEXT" : "Settings",
    
    "SHOTLY_GENERAL_TAB_1" : "General Settings",
    "SHOTLY_GENERAL_TAB_1_SETTINGSBOX" : "General Settings",
    "SHOTLY_GENERAL_TAB_1_START_WITH_WINDOWS" : "Start Shotly with Windows",
    
    
    "SHOTLY_GENERAL_TAB_2" : "Account",
    "SHOTLY_GENERAL_TAB_2_LOGIN_NAME" : "Login with your Shotly.NET account",
    "SHOTLY_GENERAL_TAB_2_USERNAME" : "Username:",
    "SHOTLY_GENERAL_TAB_2_PASSWORD" : "Password:",
    "SHOTLY_GENERAL_TAB_2_ACCOUNT_INFORMATION" : "Accountinformation:",
    "SHOTLY_GENERAL_TAB_2_ACCOUNT_INFORMATION_USERNAME" : "Username:",
    "SHOTLY_GENERAL_TAB_2_ACCOUNT_INFORMATION_LOGOUT" : "Logout",
    "SHOTLY_GENERAL_TAB_2_LOGIN_WRONG_DATA" : "Please check your username and password!",
    "SHOTLY_GENERAL_TAB_2_LOGIN_EMPTY_FIELDS" : "Please fill all fields to login!",
    
    "SHOTLY_GENERAL_TAB_3" : "Development",
    "SHOTLY_GENERAL_TAB_3_HEADER_TEXT" : "Simple things to test, and that /w bugs! :D",
    "SHOTLY_GENERAL_TAB_3_CLIPBOARD" : "Clipboard",
    "SHOTLY_GENERAL_TAB_3_LOCAL_SCREENS" : "Save screenshots locally",
    "SHOTLY_GENERAL_TAB_3_SAVE_SCREENS_QUESTION" : "Save screenshots locally?",
    "SHOTLY_GENERAL_TAB_3_OPEN_SCREENSHOT_FOLDER" : "Open folder /w screenshots",
    "SHOTLY_GENERAL_TAB_3_SET__DEFAULT_SCREENSHOT_PATH" : "Set to Default Folder",
    "SHOTLY_GENERAL_TAB_3_LANGUAGE" : "Language",
    
    "SHOTLY_NOTIFICATION_CLOSE_TEXT" : "Exit",
    
    "SHOTLY_CAPTURE_AREA_TEXT" : "Capture Area",
    "SHOTLY_CAPTURE_DESKTOP_TEXT" : "Capture Desktop",
    "SHOTLY_CAPTURE_WINDOW_TEXT" : "Capture Window"
}
see ya
 

Attachments

You must be registered for see attachments list
Joined
Feb 22, 2012
Messages
2,100
Reaction score
1,271
Hopefully it accepts brazilian characters :love:

Code:
{
    "SHOTLY_GENERAL_FORM_TEXT" : "Configurações - Shotly.NET",
    "SHOTLY_GENERAL_NOTIFICATION_TEXT" : "Configurações",
    
    "SHOTLY_GENERAL_TAB_1" : "Configurações Gerais",
    "SHOTLY_GENERAL_TAB_1_SETTINGSBOX" : "Configurações Gerais",
    "SHOTLY_GENERAL_TAB_1_START_WITH_WINDOWS" : "Iniciar Shotly com o Windows",
    
    
    "SHOTLY_GENERAL_TAB_2" : "Sua Conta",
    "SHOTLY_GENERAL_TAB_2_LOGIN_NAME" : "Login com sua conta Shotly.NET",
    "SHOTLY_GENERAL_TAB_2_USERNAME" : "Nome de Usuário:",
    "SHOTLY_GENERAL_TAB_2_PASSWORD" : "Senha:",
    "SHOTLY_GENERAL_TAB_2_ACCOUNT_INFORMATION" : "Informação de conta:",
    "SHOTLY_GENERAL_TAB_2_ACCOUNT_INFORMATION_USERNAME" : "Nome de Usuário:",
    "SHOTLY_GENERAL_TAB_2_ACCOUNT_INFORMATION_LOGOUT" : "Sair",
    "SHOTLY_GENERAL_TAB_2_LOGIN_WRONG_DATA" : "Por favor, cheque seu nome de usuário e senha.",
    "SHOTLY_GENERAL_TAB_2_LOGIN_EMPTY_FIELDS" : "Por favor, preencha todos os campos de login.",
    
    "SHOTLY_GENERAL_TAB_3" : "Desenvolvimento",
    "SHOTLY_GENERAL_TAB_3_HEADER_TEXT" : "Coisas simples para testar, e sem bugs! :D",
    "SHOTLY_GENERAL_TAB_3_CLIPBOARD" : "Clipboard",
    "SHOTLY_GENERAL_TAB_3_LOCAL_SCREENS" : "Salvar screenshots localmente",
    "SHOTLY_GENERAL_TAB_3_SAVE_SCREENS_QUESTION" : "Salvar screenshots localmente?",
    "SHOTLY_GENERAL_TAB_3_OPEN_SCREENSHOT_FOLDER" : "Abrir pasta com screenshots",
    "SHOTLY_GENERAL_TAB_3_SET__DEFAULT_SCREENSHOT_PATH" : "Definir pasta principal",
    "SHOTLY_GENERAL_TAB_3_LANGUAGE" : "Linguagem",
    
    "SHOTLY_NOTIFICATION_CLOSE_TEXT" : "Sair",
    
    "SHOTLY_CAPTURE_AREA_TEXT" : "Capturar Área",
    "SHOTLY_CAPTURE_DESKTOP_TEXT" : "Capturar Área de Trabalho",
    "SHOTLY_CAPTURE_WINDOW_TEXT" : "Capturar Janela"
}

Except for "SHOTLY_GENERAL_TAB_3_HEADER_TEXT" seems to be everything alright. What is the context of this?
 
Junior Spellweaver
Joined
Dec 29, 2015
Messages
111
Reaction score
75
Hopefully it accepts brazilian characters :love:

Code:
{
    "SHOTLY_GENERAL_FORM_TEXT" : "Configurações - Shotly.NET",
    "SHOTLY_GENERAL_NOTIFICATION_TEXT" : "Configurações",
    
    "SHOTLY_GENERAL_TAB_1" : "Configurações Gerais",
    "SHOTLY_GENERAL_TAB_1_SETTINGSBOX" : "Configurações Gerais",
    "SHOTLY_GENERAL_TAB_1_START_WITH_WINDOWS" : "Iniciar Shotly com o Windows",
    
    
    "SHOTLY_GENERAL_TAB_2" : "Sua Conta",
    "SHOTLY_GENERAL_TAB_2_LOGIN_NAME" : "Login com sua conta Shotly.NET",
    "SHOTLY_GENERAL_TAB_2_USERNAME" : "Nome de Usuário:",
    "SHOTLY_GENERAL_TAB_2_PASSWORD" : "Senha:",
    "SHOTLY_GENERAL_TAB_2_ACCOUNT_INFORMATION" : "Informação de conta:",
    "SHOTLY_GENERAL_TAB_2_ACCOUNT_INFORMATION_USERNAME" : "Nome de Usuário:",
    "SHOTLY_GENERAL_TAB_2_ACCOUNT_INFORMATION_LOGOUT" : "Sair",
    "SHOTLY_GENERAL_TAB_2_LOGIN_WRONG_DATA" : "Por favor, cheque seu nome de usuário e senha.",
    "SHOTLY_GENERAL_TAB_2_LOGIN_EMPTY_FIELDS" : "Por favor, preencha todos os campos de login.",
    
    "SHOTLY_GENERAL_TAB_3" : "Desenvolvimento",
    "SHOTLY_GENERAL_TAB_3_HEADER_TEXT" : "Coisas simples para testar, e sem bugs! :D",
    "SHOTLY_GENERAL_TAB_3_CLIPBOARD" : "Clipboard",
    "SHOTLY_GENERAL_TAB_3_LOCAL_SCREENS" : "Salvar screenshots localmente",
    "SHOTLY_GENERAL_TAB_3_SAVE_SCREENS_QUESTION" : "Salvar screenshots localmente?",
    "SHOTLY_GENERAL_TAB_3_OPEN_SCREENSHOT_FOLDER" : "Abrir pasta com screenshots",
    "SHOTLY_GENERAL_TAB_3_SET__DEFAULT_SCREENSHOT_PATH" : "Definir pasta principal",
    "SHOTLY_GENERAL_TAB_3_LANGUAGE" : "Linguagem",
    
    "SHOTLY_NOTIFICATION_CLOSE_TEXT" : "Sair",
    
    "SHOTLY_CAPTURE_AREA_TEXT" : "Capturar Área",
    "SHOTLY_CAPTURE_DESKTOP_TEXT" : "Capturar Área de Trabalho",
    "SHOTLY_CAPTURE_WINDOW_TEXT" : "Capturar Janela"
}

Except for "SHOTLY_GENERAL_TAB_3_HEADER_TEXT" seems to be everything alright. What is the context of this?
Thank you very much.
Header-Text is kind of a fun text at the top from General-Tab 3.

But you can also write 'Simple things to test'.
-Kylon

 
Joined
May 13, 2013
Messages
968
Reaction score
240
Good Development so far,

For Turkish hoes:
Code:
{    "SHOTLY_GENERAL_FORM_TEXT" : "Ayarlar - Shotly.NET",
    "SHOTLY_GENERAL_NOTIFICATION_TEXT" : "Ayarlar",
    
    "SHOTLY_GENERAL_TAB_1" : "Genel Ayarlar",
    "SHOTLY_GENERAL_TAB_1_SETTINGSBOX" : "Genel Ayarlar",
    "SHOTLY_GENERAL_TAB_1_START_WITH_WINDOWS" : "Shotly Windows ile başlasın",
    
    
    "SHOTLY_GENERAL_TAB_2" : "Hesap",
    "SHOTLY_GENERAL_TAB_2_LOGIN_NAME" : "Shotly.NET hesabınızla oturum açın",
    "SHOTLY_GENERAL_TAB_2_USERNAME" : "Ad:",
    "SHOTLY_GENERAL_TAB_2_PASSWORD" : "Parola:",
    "SHOTLY_GENERAL_TAB_2_ACCOUNT_INFORMATION" : "Accountinformation:",
    "SHOTLY_GENERAL_TAB_2_ACCOUNT_INFORMATION_USERNAME" : "Ad:",
    "SHOTLY_GENERAL_TAB_2_ACCOUNT_INFORMATION_LOGOUT" : "Çikiş yap",
    "SHOTLY_GENERAL_TAB_2_LOGIN_WRONG_DATA" : "Kullanıcı adınızı ve şifrenizi kontrol edin!",
    "SHOTLY_GENERAL_TAB_2_LOGIN_EMPTY_FIELDS" : "Giriş yapmak için lütfen tüm alanları doldurunuz!",
    
    "SHOTLY_GENERAL_TAB_3" : "Gelişme",
    "SHOTLY_GENERAL_TAB_3_HEADER_TEXT" : "Basit şeyler test etmek için :D",
    "SHOTLY_GENERAL_TAB_3_CLIPBOARD" : "Pano",
    "SHOTLY_GENERAL_TAB_3_LOCAL_SCREENS" : "Ekran görüntüleri bilgisayarima kaydet",
    "SHOTLY_GENERAL_TAB_3_SAVE_SCREENS_QUESTION" : "Ekran görüntüleri bilgisayarima kaydet",
    "SHOTLY_GENERAL_TAB_3_OPEN_SCREENSHOT_FOLDER" : "Ekran görüntüler klasörünü aç",
    "SHOTLY_GENERAL_TAB_3_SET__DEFAULT_SCREENSHOT_PATH" : "Klasör Varsayılan ayarla",
    "SHOTLY_GENERAL_TAB_3_LANGUAGE" : "Dil",
    
    "SHOTLY_NOTIFICATION_CLOSE_TEXT" : "Çik",
    
    "SHOTLY_CAPTURE_AREA_TEXT" : "Alan Yakala",
    "SHOTLY_CAPTURE_DESKTOP_TEXT" : "Masaüstü Yakala",
    "SHOTLY_CAPTURE_WINDOW_TEXT" : "Pencere Yakala"
}
 
Back
Top