"There are many threats to freedom in the digital society. They include massive surveillance, censorship, digital handcuffs, nonfree software that controls users, and the War on Sharing. Other threats come from use of web services. Finally, we have no positive right to do anything in the Internet; every activity is precarious, and can continue only as long as companies are willing to cooperate with it."
https://archive.org/details/freedigitalsociety20150522
2015. május 24., vasárnap
Convert MP3 to OGG with AVCONV
/usr/bin/avconv -y -i "input.mp3" -acodec libvorbis -b:a 256k -vol 256 "output.ogg"
-vol kapcsoló: hangerő állítása:
128: fele hangerő
256: nincs változás
512: kétszeres hangerő
-vol kapcsoló: hangerő állítása:
128: fele hangerő
256: nincs változás
512: kétszeres hangerő
2015. május 23., szombat
YouTube feliratok automatikus fordítása
Get YouTube automatically generated subtitles:
#include<iostream> #include<fstream> #include<cstring> #include<cmath> #include<dirent.h> using namespace std; struct content { string strTime; string text; }; struct Time { int h; int m; int s; int ms; int tms; }; content getNext(ifstream &fin); string &nextch(ifstream &fin, string &test, int length); Time str2time(string t); void showTime(Time, ofstream &fout); void convert(ofstream &fout, ifstream &fin, content A, int line); int main() { dirent *ep; DIR *dp; dp = opendir("./"); ep = readdir(dp); while (ep != NULL) { string name = ep->d_name; if (name.find(".txt") != string::npos) { ifstream fin; fin.open(&name[0]); content test = getNext(fin); if (test.strTime.size() > 0) { string oname = string(&(name[0]), name.size() - 4) + ".YTBCC_eng.srt"; ofstream fout; fout.open(&oname[0]); convert(fout, fin, test, 1); fout.close(); } fin.close(); } ep = readdir(dp); } } void convert(ofstream &fout, ifstream &fin, content A, int line) { content N = getNext(fin); if (N.strTime.size() > 0) { Time F = str2time(A.strTime); Time L = str2time(N.strTime); if (F.tms + 10000 >= L.tms) { fout << line << endl; showTime(F, fout); fout << " --> "; showTime(L, fout); fout << endl; fout << A.text << endl << endl; } else { fout << line << endl; showTime(F, fout); fout << " --> "; Time temp; temp.tms = F.tms + 10000; //limit 10 seconds per line temp.h = temp.tms / 3600000; temp.m = (temp.tms - temp.h * 3600000) / 60000; temp.s = (temp.tms - temp.h * 3600000 - temp.m * 60000) / 1000; temp.ms = F.ms; showTime(temp, fout); fout << endl; fout << A.text << endl << endl; } convert(fout, fin, N, line + 1); } else { fout << line << endl; Time Pr = str2time(A.strTime); showTime(Pr, fout); fout << " --> "; Time Ne; Ne.ms = Pr.ms; int all_t = Pr.h * 3600 + Pr.m * 60 + Pr.s + 6; Ne.h = all_t / 3600; Ne.m = (all_t - Ne.h * 3600) / 60; Ne.s = all_t - Ne.h * 3600 - Ne.m * 60; showTime(Ne, fout); fout << endl; fout << A.text << endl; } } content getNext(ifstream &fin) { string strTime, text; string keyTime = "data-time=\""; string keyText = "<div class=\"caption-line-text\">"; int size_ktime = keyTime.size(); int size_ktext = keyText.size(); bool jud = 1; //judge if our time and text are //contained in txt file //1 == be not contained string test; //get strTime test = nextch(fin, test, size_ktime); if (test != "\0") { do { if (test == keyTime) { jud = 0; break; } else test = nextch(fin, test, size_ktime); }while (test != "\0"); if (jud) return {"\0", "\0"}; else { char ch = fin.get(); while(ch != '\"') { strTime = strTime + ch; ch = fin.get(); } //ensure the form of strTime is XXX.XXX jud = 1;//here jud = 1 means that the form is XXX,no '.' for (int i = 0; i < strTime.size(); i++) { if(strTime[i] == '.') { jud = 0; break; } } if (jud) strTime = strTime + ".0"; } } else return {"\0", "\0"}; //get text jud = 1; test = string(); test = nextch(fin, test, size_ktext); if (test != "\0") { do { if (test == keyText) { jud = 0; break; } else test = nextch(fin, test, size_ktext); } while (test != "\0"); if (jud) return {"\0", "\0"}; else { char ch = fin.get(); while (ch != '<') { text = text + ch; ch = fin.get(); } } } else return {"\0", "\0"}; return {strTime, text}; } string &nextch(ifstream &fin, string &test, int length) { int n = test.size(); if(n > 0) { char ch = fin.get(); if (!fin.eof()) { for (int i = 0; i < n - 1; i++) test[i] = test[i + 1]; test[n - 1] = ch; return test; } else { test = "\0"; return test; } } else { char ch = fin.get(); for (int i = 0; i < length; i++) { if (!fin.eof()) { test = test + ch; if (i < length - 1) ch = fin.get(); } else { test = "\0"; return test; } } return test; } } Time str2time(string t) { int k = 0; while (t[k] != '.') { k++; } int h, m, s, ms, tms, time; time = 0; for (int i = 0; i < k; i++) { time = time + (t[i] - 48) * int(pow(10.0, k - i - 1)); } h = time / 3600; m = (time - h * 3600) / 60; s = time - h * 3600 - m * 60; ms = 0; int length = t.size(); for (int i = k + 1; i < length; i++) ms = ms + (t[i] - 48) * int(pow(10.0, 3 - i + k)); tms = time * 1000 + ms; Time E = {h, m, s, ms, tms}; return E; } void showTime(Time T, ofstream &fout) { if (T.h < 10) fout << "0" << T.h; else fout << T.h; fout << ":"; if (T.m < 10) fout << "0" << T.m; else fout << T.m; fout << ":"; if (T.s < 10) fout << "0" << T.s; else fout << T.s; if (T.ms == 0) fout << ",000"; else { fout << ","; if (T.ms < 10) fout << "00" << T.ms; else if (T.ms < 100) fout << "0" << T.ms; else fout << T.ms; } }
https://code.google.com/p/youtube-subtitles-download/
2015. május 3., vasárnap
CM12 theme app crashes
Oneplus One Android 5 Lollipop
Go to setting -apps -all.
Scroll down until you find these 3 apps called Theme chooser, Themes and Themes provider.
Clear the data of each one of them.
Most importantly, please do clear other theme related data.
ALL of them,unless it wouldnt worked.
Then reboot...
https://forums.oneplus.net/threads/is-anyone-having-problem-with-opening-theme-chooser.298676/
Go to setting -apps -all.
Scroll down until you find these 3 apps called Theme chooser, Themes and Themes provider.
Clear the data of each one of them.
Most importantly, please do clear other theme related data.
ALL of them,unless it wouldnt worked.
Then reboot...
https://forums.oneplus.net/threads/is-anyone-having-problem-with-opening-theme-chooser.298676/
Feliratkozás:
Bejegyzések (Atom)