[SHOWCASE] Shotly.NET - fastest way to upload your screenshots
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 one 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.
Sign In - Shotly.NET (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:
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();
}
}
http://puu.sh/n6lpG/f834219edd.png
http://puu.sh/n6Pcq/2e7f795340.png
http://puu.sh/n6PjX/e6e244e60b.png
http://puu.sh/n6QvO/d7eba890aa.png
see ya
Re: [SHOWCASE] Shotly.NET - fastest way to upload your screenshots
Quote:
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..
Re: [SHOWCASE] Shotly.NET - fastest way to upload your screenshots
Quote:
Originally Posted by
GigaToni
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..
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. ^.^
Re: [SHOWCASE] Shotly.NET - fastest way to upload your screenshots
Users has the choice to login or upload anonym (but IP will be log).
http://puu.sh/n7DOj/8865875545.png
http://puu.sh/n7DYs/2d3f4a875f.png
http://puu.sh/n7D67/45468351d0.png
http://puu.sh/n7D6X/1d47a8515a.png
----------------------------------
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: ''
});
Re: [SHOWCASE] Shotly.NET - fastest way to upload your screenshots
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 shit to do until you captured the screen somehow :P I hope it's less annoying to do in .NET
Re: [SHOWCASE] Shotly.NET - fastest way to upload your screenshots
Looks like a cool project. Website doesn't open for me though
Re: [SHOWCASE] Shotly.NET - fastest way to upload your screenshots
Looks good. Your application could look much nicer though, and your website is offline atm
Re: [SHOWCASE] Shotly.NET - fastest way to upload your screenshots
Quote:
Originally Posted by
GoldenHabbo
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
Re: [SHOWCASE] Shotly.NET - fastest way to upload your screenshots
Quote:
Originally Posted by
Kylon
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.
Re: [SHOWCASE] Shotly.NET - fastest way to upload your screenshots
Quote:
Originally Posted by
Kylon
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.
ebsite is offline
No cached version of this page is available.
Error 522 Ray ID: 2800f108bcfd20b4 • 2016-03-07 20:54:31 UTC
Connection timed out
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.
Re: [SHOWCASE] Shotly.NET - fastest way to upload your screenshots
Quote:
Originally Posted by
RealPharaoh
ebsite is offline
No cached version of this page is available.
Error 522 Ray ID: 2800f108bcfd20b4 • 2016-03-07 20:54:31 UTC
Connection timed out
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.......
Sent from my A0001 using Tapatalk
Re: [SHOWCASE] Shotly.NET - fastest way to upload your screenshots
Quote:
Originally Posted by
Kylon
Server down, cuz hoster.......
Sent from my A0001 using Tapatalk
Any idea when it'll be back up?
Re: [SHOWCASE] Shotly.NET - fastest way to upload your screenshots
Quote:
Originally Posted by
GoldenHabbo
Any idea when it'll be back up?
I'll buy a new server. I don't know when, maybe this week. :P
Re: [SHOWCASE] Shotly.NET - fastest way to upload your screenshots
We'll soon sponsored from a big server hoster. Don't worry, this project isn't dead!
Re: [SHOWCASE] Shotly.NET - fastest way to upload your screenshots
Sooooooooo. We got the new server and now I'm currently expand the API.
ya, see you later. phpinfo()
btw. we're searching people who wants to translate shotly in your language.
Just PM me. >.>