Suche Suche App zur Bereinigung von Links beim Teilen

Rak

Rak

Gesperrt
7.843
Hi, ich suche ein Tool, dss mir hilft, beim Teilen Links zu bereinigen.

Beispiel:

Ich lese im Newreader einen Artikel und teile ihn beispielsweise per WhatsApp oder sonstwie an jemanden. Dann werden eine Reihe Parameter angehängt an die eigentliche URL:
Code:
http://t3n.de/news/to-do-listen-sinnvoll-sind-743133/?utm_source=feedburner+t3n+News+12.000er&utm_medium=feed&utm_campaign=Feed%3A+aktuell%2Ffeeds%2Frss+%28t3n+News%29
Wenn ich selbst das im Browser öffne, ist mir das egal, ich verstehe ja auch den Sinn dahinter halbwegs :).

Aber beim Teilen nervt es und irritiert meine Bekannten zusätzlich. Gewünscht wäre im obigen Beispiel dieser ursprüngliche Link:
Code:
http://t3n.de/news/to-do-listen-sinnvoll-sind-743133/

Hat da jemand eine Idee oder Erfahrung?
 
  • Danke
Reaktionen: maxe
ich weiß nicht genau aber die url landet ja vmtl in der zwischenablage, diese könntest du "überwachen" wenn eine url ist kürzen lassen (hier könnte es etwas schwierig werden, aber ? oder & und alles danach weg könnte i.d.r. passen) und dann die zwischenablage neu setzen (auf die schnelle fiel mir da evtl. tasker oder sl4a ein, gibt aber sicherlich einiges)
 
  • Danke
Reaktionen: Rak
Hmm, danke. Eigentlich ist die Zwischenablage eher die Ausnahme, beim Teilen an andere Apps landet da ja normalerweise nichts.

Wenn man grundsätzlich über die Zwischenablage gehen würde, wäre da das vielleicht mit Tasker eine Möglichkeit, das überblicke ich noch nicht.

Hoffen tue ich natürlich auf eine fertige App ;), an die man teilen kanm und von dort aus weiter an den echten Empfänger. Ich kann mir eigentlich nicht vorstellen, dass ich der Erste bin, den das Ganze stört..
 
Z.b. mit Droidscript könnte es mit Umweg so klappen (entweder app erstellen (kostet allerdings) oder direkt über Droidscript (nicht sicher ob das funzt):
Code:
//This example shows how to receive data from other apps
//which offer the 'Share via' option, such as the 'My Files' 
//app or 'ES File Explorer' or 'S Memo' apps.

//Called when application is started.
function OnStart()
{
    //Create a layout with objects vertically centered.
    lay = app.CreateLayout( "linear", "VCenter,FillXY" );   

    //Create a 'text' label and text boxt.
    txt = app.CreateText( "Shared Text:" );
    lay.AddChild( txt );
    txt1 = app.CreateText( "", 0.9, 0.4 , "multiline" );
    txt1.SetBackColor( "#ff222222" );
    txt1.SetTextSize( 18 );
    lay.AddChild( txt1 );
   
    sendbtn = app.CreateButton( "Send" );
    sendbtn.SetOnTouch( sendbtn_OnTouch );
    lay.AddChild( sendbtn );
   
    //Create 'files' label and text box.
    //txt = app.CreateText( "Shared Files:" );
    //txt.SetMargins( 0,0.05,0,0 );
    //lay.AddChild( txt );
    //txt2 = app.CreateText( "", 0.9, 0.4, "multiline" );
    //txt2.SetBackColor( "#ff222222" );
    //txt2.SetTextSize( 18 );
    //lay.AddChild( txt2 );
   
    //Add layout to app.   
    app.AddLayout( lay );
   
    //Get shared text (if any).
    sharedText = app.GetSharedText();
    if( sharedText ) txt1.SetText( sharedText );
   
    //Get first shared file (if any).
    //sharedFiles = app.GetSharedFiles();
    //if( sharedFiles ) txt2.SetText( sharedFiles[0] );
   
    //Uncomment the code below to register your program to 
    //handle all shared data. (It will be auto-launched the 
    //next time shared data is received)
    //app.SetSharedApp( "My AppName" );
}

function sendbtn_OnTouch()
{
   var extras = [ 
        {name:"android.intent.extra.TEXT", type:"string",value:sharedText},
        //{name:"android.intent.extra.SUBJECT", type:"string", value:"My subject"},
        //{name:"android.intent.extra.TEXT", type:"string", value:"Hello!"} 
    ];
    extras = JSON.stringify( extras );

   app.SendIntent(null,null,"android.intent.action.SEND",null,null,"text/plain",extras)
}

(sharedText müsstest du noch entsprechend zurechtstutzen)
Allerdings die "Personenleiste" ganz oben fehlt dann (ließe sich evtl. auch bewerkstelligen)
 

Anhänge

  • IMG_20160910_165316.jpg
    IMG_20160910_165316.jpg
    57,1 KB · Aufrufe: 194
  • Screenshot_20160910-164808.png
    Screenshot_20160910-164808.png
    13,6 KB · Aufrufe: 194
  • Screenshot_20160910-164819.png
    Screenshot_20160910-164819.png
    21,2 KB · Aufrufe: 221
  • Danke
Reaktionen: Rak
Danke, blicke ich so erst mal nicht ganz, muss ich mich mal mit beschäftigen.
 
Lad dir wenn du magst einfach mal die Droidscript app runter, die app ansich ist kostenlos, die meisten plugins (z.b. um eine apk zu erstellen) kosten dann aber an sich ist es auch so nutzbar. Ich denke damit könntest du das so hinbekommen wie du wünschst, evtl. schau ich selbst auch nochmal, ich hab allerdings akutell ein problem beim tippen, deshalb momentan nicht so günstig
 
  • Danke
Reaktionen: Rak
Auf den ersten Blick (mit meinen bescheidenen Kenntnissen) erkenne ich in dem Scripts nicht, wie/wo da die URL an der geeigneten Stelle abgeschnitten wird.

Dafür habe ich den Eindruck, als würden einige Dinge überflüssig sein? String mit value "Hello"? ;)
 
Deshalb meine ich ja oben muss nich zurechtgestutzt werden :)

hier versuch mal das (hab auch mal eine apk erstellt, falls so passt könnte man auch den "zwischenbildschirm" (alt/neu) bleiben lassen und gleich das "teilenmenü" starten

Code:
//Called when application is started.
function OnStart()
{
    //Create a layout with objects vertically centered.
    lay = app.CreateLayout( "linear", "VCenter,FillXY" );  

    //Create a 'text' label and text boxt.
    txt1 = app.CreateText( "Ausgangstext:" );
    lay.AddChild( txt1 );
    txtorg = app.CreateText( "", 0.9, 0.2 , "multiline" );
    txtorg.SetBackColor( "#ff222222" );
    txtorg.SetTextSize( 18 );
    lay.AddChild( txtorg );

    txt2 = app.CreateText( "Neu:" );
    lay.AddChild( txt2 );

    txtnew = app.CreateText( "", 0.9, 0.2 , "multiline" );
    txtnew.SetBackColor( "#ff222222" );
    txtnew.SetTextSize( 18 );
    lay.AddChild( txtnew );
  
    sendbtn = app.CreateButton( "Teilen" );
    sendbtn.SetOnTouch( sendbtn_OnTouch );
    lay.AddChild( sendbtn );

  
    //Add layout to app.  
    app.AddLayout( lay );
  
    //Get shared text (if any).
    sharedText = app.GetSharedText();
    //sharedText = "http://t3n.de/news/to-do-listen-sinnvoll-sind-743133/?utm_source=feedburner+t3n+News+12.000er&utm_medium=feed&utm_campaign=Feed%3A+aktuell%2Ffeeds%2Frss+%28t3n+News%29" // test
    if( sharedText ) txtorg.SetText( sharedText );

    splitText( sharedText );
  
    //Uncomment the code below to register your program to
    //handle all shared data. (It will be auto-launched the
    //next time shared data is received)
    app.SetSharedApp( "cutAndShare" );
    // nur wenn über Droidscript
}

function splitText( t )
{
    var splitter = ["/?","/&","?","&"];
    // split txt
    for (var i = 0; i < splitter.length; i++) {
        console.log(splitter[i]);
        if ( t.indexOf(splitter[i]) != -1 ) {
            var tnew = t.split(splitter[i]).shift();
            break;
        }
    }
    if (tnew) txtnew.SetText( tnew);
}

function sendbtn_OnTouch()
{
   var extras = [
        {name:"android.intent.extra.TEXT", type:"string",value:txtnew.GetText()},
        //{name:"android.intent.extra.SUBJECT", type:"string", value:"My subject"},
        //{name:"android.intent.extra.TEXT", type:"string", value:"Hello!"}
    ];
    //extras = JSON.stringify( extras );

   app.SendIntent(null,null,"android.intent.action.SEND",null,null,"text/plain",JSON.stringify( extras ))
}

(bei splitter könntest du noch eigenes einfügen)
Ausgangsurl der letzten bilder war start [DroidScript wiki]

edit:
Dafür habe ich den Eindruck, als würden einige Dinge überflüssig sein? String mit value "Hello"?

das ist ja auch auf die schnelle rauskopiert :) (und eh auskommentiert)
console.log kannst du dir auch sparen, hab ich vergessen zu entfernen
 

Anhänge

  • Screenshot_20160910-180948.png
    Screenshot_20160910-180948.png
    21,9 KB · Aufrufe: 208
  • Screenshot_20160910-181232.png
    Screenshot_20160910-181232.png
    14,9 KB · Aufrufe: 238
  • IMG_20160910_182120.jpg
    IMG_20160910_182120.jpg
    49,6 KB · Aufrufe: 175
  • IMG_20160910_182236.jpg
    IMG_20160910_182236.jpg
    66,5 KB · Aufrufe: 184
Zuletzt bearbeitet:
  • Danke
Reaktionen: Rak
So, hab mal Droidscript installiert und den Code eingefügt.

Funktioniert auch ohne App-Plugin durch Auswahl von Droidscript beim Teilen. :thumbup:
Ja, die Anzeige des Fensters ist nun eigentlich überflüssig

Müsste das Script nicht auch in Tasker laufen? Da kann man ja wohl auch eine apk erstellen... Hab ich noch nie gemacht, müsste ich mal schauen.
 
Zuletzt bearbeitet:
Bei tasker ginge z.b. nicht app.GetSharedText(); (das ganze app zeug kennt "nur" droidscript).
Allerdings ließe sich evtll mit tasker der eigentliche "teilen intent" auch abzufangen.
Last but not least, zur not könnte ich dir auch die apk erstellen und hochladen, gerne auch ohne das fenster (allerdings wäre es davor evtl. besser erstmal noch ein bischen auszuprobieren ob es bei den meisten links passt).
 
  • Danke
Reaktionen: Rak
Das wäre sehr nett von dir :). Ich kaufe bereitwillig Apps, aber 14,99 für das Plugin nur für diesen Zweck sind schon was happig... ;)

Ich werde noch ein paar Tage testen und mich dann hier melden.
 
ja ich weiß, ist mittlerweile etwas teuer geworden, ich hab damals so 4-5 dafür bezahlt.
 
  • Danke
Reaktionen: Rak
@vetzki Ich schreibe mal einfach, was mir auffällt - nicht als direkte Aufforderung an dich ;), sondern damit ich es später nicht vergesse:

- Manche URLs haben Parameter ohne "?" hingen dran. Beispiel: Rätsel der Woche: Verrückte Rechnerei - SPIEGEL ONLINE - Nachrichten - Wissenschaft
Nicht so dramatisch in diesem Beispiel, aber trotzdem. Ich weiß aber gerade auch nicht, ob das # nicht auch sonstwo in Parametern mal auftauchen könnte...

- Bei einem Slash vor dem Fragezeichen wird dieser gelöscht. Bisher ohne Probleme, sollte vermutlich immer gutgehen?

- Kurzer leerer Splash-Screen von Droidscript, der dan verschwindet und dann das Öffnen des eigentlichen Fensters. Ob sich der Leere Screen vorher deaktivieren lässt?
 
1. # oder z.b. html# (oder z.b. auch "gugelhupf") könnte man schon noch hinzufügen. Momentan wird nur bei /? (oder ?) bzw. /& (oder &) getrennt (evtl. könnte man auch den "zwischenbildschirm" drinlassen und dort die spliiter einfügen (und editierbar machen)
2. Der fehlende / sollte kein problem sein, ich hab zumindest noch keine seite getroffen wo das der fall war (man könnte allerdings auch nur ? verwenden)
3. der kurze leere Bildschirm ließe sich denke ich auch vermeiden, das ganze müsste dann als service laufen (ohne gewähr sollte aber klappen)

ich schau nach mittag nochmal ob ich es als service hinbekomme
[doublepost=1473592669,1473586761][/doublepost]Schau mal ob du so evtl damit leben kannst (ich weiß ist nicht ideal, ganz ohne bild muss ich mir nochmal anschauen).
Die Zeichen an denen getrennt werden soll ließe sich imo am einfachsten mit einer Textdatei auf der sdkarte umsetzen (bisher fest drin, aber das reicht ggf. auch?)

Code:
//Called when application is started.
function OnStart()
{
    app.ToBack();
    sharedText = app.GetSharedText();

    splitText( sharedText );
}

function splitText( t )
{
    var splitter = ["/?","/&","?","&","#"];
    // split txt
    for (var i = 0; i < splitter.length; i++) {
        if ( t.indexOf(splitter[i]) != -1 ) {
            var tnew = t.split(splitter[i]).shift();
            // break;
             ## Edit2: var t = tnew ; /* break entfernt
          da sonst z.b. www.bla.de/#bla2?bla3=bka4
         www.bla.de/#bla2 wird
         jetzt werden alle splitter weiter geprüft auch wenn
      schon einer gefunden wurde */
        }
    }

    var txtnew = ( tnew ) ? tnew : t

    shareIt( txtnew )
}

function shareIt( txtnew )
{
   var extras = [
        {name:"android.intent.extra.TEXT", type:"string",value:txtnew}
    ];
   app.SendIntent(null,null,"android.intent.action.SEND",null,null,"text/plain",JSON.stringify( extras ))
   app.Exit();
}

edit:
console.log entfernt, app.ToBack() in OnStart

edit2:
siehe code
 

Anhänge

  • cutAndShare.apk
    1,6 MB · Aufrufe: 77
Zuletzt bearbeitet:
  • Danke
Reaktionen: Rak
Hey, wirkt super in ersten Tests (apk auf Tablet direkt probiert). :thumbup: Beim Teilen kurz schwarzer Screen, dann zügig genug das weitere Teilen-Menü.

Die Zeichen zum Trennen müssen nicht unbedingt auf SD, ist so ok - hab in der apk die cutandshare.js gefunden ;). Wenn man mal was ändern muss in die Richtung...

Herzlichen Dank an dich! Kann man dir was gutes tun?

Zuschuss, um das in den Play Store zu bringen? :D Eigentlich komisch, dass es das noch nicht gibt (bzw. für mich nirgends zu finden war)
 
Ich teile die Links, wie sie kommen ... Hat noch nie für Verwirrung gesorgt. Ich lese und share via Feedly, wenn ich auf teilen klicke, kommen die Links schon bereinigt raus.
 
Via Feedly wird ja teils noch zusätzlich über einen anderen Sever geleitet, beim Öffnen kriegt man das kurz mit, beim Teilen sieht man in einem solchen Fall überhaupt nicht, worum es geht. Der im ersten Beitrag genannte Artikel wird dann so geteilt:
Code:
http://feedproxy.google.com/~r/aktuell/feeds/rss/~3/PZOpz3I4H3w/
Das kann man nebenbei mit der kostenlosen App "App Redirect" verhindern. Und ist aber nicht mein o.g. Problem. Daher nur nebenbei.

Und ich habe halt schon für Verwirrung gesorgt bei Bekannten ;). Zudem finde ich die nun dank vetzki bereinigten URLs auch besser für Lesezeichen, Notizen u.ä.

Und es betrifft ja nicht alle Feeds, aber eben doch schon nicht wenige.
 
Zuletzt bearbeitet:
vetzki schrieb:
Allerdings ließe sich evtll mit tasker der eigentliche "teilen intent" auch abzufangen.
Das klappt mit dem AutoShare Plugin, dieses taucht dann in der Auswahl der Apps zum Teilen auf.
 
  • Danke
Reaktionen: Rak

Ähnliche Themen

Domski
  • Domski
Antworten
1
Aufrufe
135
holms
holms
B
  • BOSSE1234
Antworten
1
Aufrufe
224
JohnyV
JohnyV
Romulix
  • Romulix
Antworten
7
Aufrufe
384
KalleMerkt
K
Zurück
Oben Unten